JSON 整形・検証ツール(JSON Formatter)
JSON を整形、圧縮、検証し、エラーの行を正確に示します。 処理はすべて端末内で完結し、アップロードは一切ありません。
- 入力
- JSON
- 出力
- Formatted JSON · minified JSON · error location
入力
164 B · 1 行
結果
221 B (+35%) · 9 キー · 深さ 2
{
"id": 12345678901234567890,
"name": "Pack Camo",
"tags": [
"privacy",
"offline"
],
"price": 1.50,
"active": true,
"owner": {
"name": "Ada",
"email": "ada@example.com"
},
"notes": null
}JSON の整形、検証、修復を 1 か所で
この JSON 整形ツールは、1 行の API レスポンスを貼り付けると同時に読みやすくインデントされた JSON に変換し、同時に検証も行います。JSON が壊れている場合は、何が問題でどの行・列にあるかを示して行をハイライトし、よくある原因である末尾のカンマ、シングルクォート、引用符のないキー、コメントの修復を提案します。圧縮したり、すべての階層でキーをアルファベット順に並べ替えたり、結果をコピー・ダウンロードしたりもできます。すべてブラウザ内で動作するため、トークン、顧客データ、社内の設定がお使いのマシンの外に出ることはありません。
JSON を整形・検証する方法
- 左のペインに JSON を貼り付けるか、
.jsonファイルを開くか、ペインにドロップします。 - ステータスバーを確認します。有効な JSON、またはエラーとその行・列が表示されます。エラーへ移動を押すとその位置にジャンプします。
- 問題が末尾のカンマ、シングルクォート、引用符のないキー、コメントであれば、修復を押して厳密な JSON に変換します。
- スペース 2 つ、スペース 4 つ、タブのいずれかで整形するか、圧縮を選びます。順序を固定したい場合はキーを並べ替えをオンにします。
- 結果をコピーするか、
.jsonファイルとしてダウンロードするか、別のツールに送ります。
有効な JSON の条件
JSON(RFC 8259)は、元になった JavaScript より厳密です。キーはダブルクォートで囲んだ文字列でなければならず、文字列もダブルクォートを使います。コメント、最後の要素の後のカンマ、undefined、NaN、Infinity は使えず、数値は先頭のゼロや小数点だけの表記も許されません。検証ツールはこれらのルールをすべて確認し、最初に違反した箇所を、わかりにくいエンジンのメッセージではなく平易な説明で報告します。
行と列の番号はコードエディターと同じく 1 から数えるので、自分のエディターでもその場所にすぐ移動できます。
- 予期しない文字
- 紛れ込んだ文字など、値の先頭になり得ないもの、またはその行の前の方での引用符の閉じ忘れです。
- カンマまたは } が必要
- 2 つのプロパティの間にカンマがないか、閉じ波かっこがありません。
- 末尾のカンマ
- オブジェクトや配列の最後の要素の後にあるカンマです。JavaScript では許されますが、JSON では許されません。
- 閉じられていない文字列
- 閉じ引用符のない文字列です。多くの場合、文字列内の改行が原因で、改行は \n と書く必要があります。
JSON に近いテキストを修復する
JSON として貼り付けられるものの多くは、実際には JavaScript のオブジェクト、JSON5、コメント付きの設定ファイルです。修復機能はこれを厳密な JSON に変換します。// と /* */ のコメントを削除し、末尾のカンマを取り除き、'single-quoted' の文字列をダブルクォートに書き換え、裸のキーを引用符で囲み、Python の True、False、None を置き換えます。テキストはトークナイザーで読み込むので、文字列内のカンマや引用符には一切手を加えず、行のレイアウトも保つため、後のエラーも正しい行を指します。
カンマやかっこの欠落といった構造上の誤りは、あえて推測で直しません。直し方が複数あり得るため、代わりに検証ツールがその場所を示します。
データを変えずに整形する
多くの整形ツールはテキストを JSON.parse で読み込んでから書き戻すため、大きな数値がこっそり丸められ(12345678901234567890 のような ID は末尾の桁が失われます)、1.50 が 1.5 に書き換えられ、数値のキーが各オブジェクトの先頭に移動します。このツールは JSON を独自のツリーに解析し、すべての数値を書かれたとおりに、すべてのキーを元の順序のまま保つので、キーの並べ替えを指定しない限り、変わるのは空白だけです。
並べ替えは、jq -S と同じようにコードポイント順でキーを比較し、ネストのすべての階層に適用されます。並べ替えて一貫したインデントにした JSON は最も比較しやすくなります。2 つのドキュメントの実際の違いを見るには JSON 差分比較ツールを、JSON を YAML、CSV、TOML に変換するにはデータ変換ツールを使ってください。
整形か、圧縮か
- 整形は読む、レビューする、コミットするときに。1 行に 1 つの値にすると、バージョン管理での差分が小さくわかりやすくなります。JavaScript のプロジェクトではスペース 2 つが最も一般的で、Python や Java では 4 つがよく使われ、タブなら読む人ごとに幅を選べます。
- 圧縮は送信や保存のときに。空白を取り除くと、整形済みの JSON は通常 10 〜 30% 小さくなり、出力ペインに変換前後のサイズが表示されます。
- 出力ペインにはキーの数とネストの深さも表示されるので、見慣れないデータを手早く確認できます。
よくある質問
- JSON をオンラインで整形するには?
- 左のペインに JSON を貼り付けてください。すぐに検証され、右のペインに整形されて表示されます。スペース 2 つ、スペース 4 つ、タブから選び、結果をコピーまたはダウンロードしてください。
- JSON が正しいかどうか確認するには?
- 貼り付けてステータスバーを確認してください。「有効な JSON」、または最初のエラーとその行・列が表示され、「エラーへ移動」でカーソルがその位置に移動します。
- JSON がエラーになるのはなぜですか?
- よくある原因は、最後の要素の後の末尾カンマ、ダブルクォートではなくシングルクォート、引用符のないキー、コメント、2 つのプロパティの間のカンマ抜けです。最初の 4 つは修復ボタンで直せます。
- JSON にコメントは書けますか?
- いいえ。標準の JSON にはコメントの構文がありません。一部の設定ファイルで使われる JSONC や JSON5 では使えます。修復ボタンでコメントを取り除くと標準の JSON になります。
- 整形すると数値やキーの順序が変わりますか?
- いいえ。非常に大きな整数や末尾のゼロも含め、数値は入力どおりに出力され、キーの並べ替えをオンにしない限り、キーは元の順序のままです。
- JSON を圧縮(minify)するには?
- 「圧縮」を選んでください。文字列の外のすべての空白が取り除かれ、出力ペインにどれだけ小さくなったかが表示されます。
- JSON はサーバーに送信されますか?
- いいえ。解析、検証、整形はすべてブラウザ内で行われます。何もアップロードされないので、API キー、トークン、個人データにも安心して使えます。