Pack Camo

JSON 整形・検証ツール(JSON Formatter)

JSON を整形、圧縮、検証し、エラーの行を正確に示します。 処理はすべて端末内で完結し、アップロードは一切ありません。

入力
JSON
出力
Formatted JSON · minified JSON · error location
有効な JSON

入力

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 を整形・検証する方法

  1. 左のペインに JSON を貼り付けるか、.json ファイルを開くか、ペインにドロップします。
  2. ステータスバーを確認します。有効な JSON、またはエラーとその行・列が表示されます。エラーへ移動を押すとその位置にジャンプします。
  3. 問題が末尾のカンマ、シングルクォート、引用符のないキー、コメントであれば、修復を押して厳密な JSON に変換します。
  4. スペース 2 つ、スペース 4 つ、タブのいずれかで整形するか、圧縮を選びます。順序を固定したい場合はキーを並べ替えをオンにします。
  5. 結果をコピーするか、.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 キー、トークン、個人データにも安心して使えます。