ブログ
日本語

JSON整形 — 見やすく整形・圧縮・構文チェック

JSONの整形・圧縮・検証とキー並べ替え。エラーは行と列で表示

ブラウザー内で処理・アップロード不要

結果

JSON整形ツールとは

1行に詰まったJSONをインデント付きの読みやすいテキストにしたり、不要な空白をすべて取り除いて小さくしたりするツールです。APIのレスポンスの確認、設定ファイルの整理、構文が壊れた箇所の特定に使えます。結果は入力に合わせてすぐ更新されるので、ボタンを押す必要はありません。

使い方

  1. JSONを入力欄に貼り付けます。
  2. スペース2・スペース4・タブのいずれかのインデント、または「圧縮」を選びます。
  3. キーを文字コード順に並べたい場合は「キーを並べ替え」をオンにします。オブジェクト内やオブジェクト配列内の入れ子にも適用されます。
  4. 結果をコピーします。エラーがある場合は行と列が表示されるので、そこから修正してください。

処理の仕組み

  • 文法はRFC 8259(ECMA-404)のJSONです。キーと文字列はダブルクォートのみで、コメントや末尾のカンマは使えません。
  • エラー位置の行と列は1から数えます。\n、\r\n、単独の \r はいずれも改行1回として数えます。列は文字(コードポイント)単位で数えるため、絵文字も1列です。エラー行の下のキャレットはタブをそのまま反映します。Infinityにあふれる数値(1e999 など)は警告付きで null になり、512階層を超える入れ子ははっきりしたメッセージで拒否します。
  • キーの並べ替えはすべての階層でコードユニット順(大文字が小文字より先)に行い、配列の順序は変えません。1つのオブジェクトに2回現れるキー({"a":1,"a":2})はJSONの規則どおり最後の値だけが残るため、結果は出力されますが、そのキーと重複した行・列を示す警告が表示されます。JavaScriptのオブジェクトの仕様上、"1" や "2" のような整数形式のキーは、オプションにかかわらず常に数値順で先頭に来ます。
  • 出力では日本語・中国語・韓国語や絵文字をそのまま残し、\n や \" などJSONで必要なものだけをエスケープします。"A" のようなUnicodeエスケープは "A" として書き出します。
  • 数値はJavaScriptのNumberとして読み込みます。2^53を超える整数は正確には保持されず、警告でお知らせします。

例

入力 オプション 結果
{"b":1,"a":{"d":2,"c":3}} 圧縮+キー並べ替え {"a":{"c":3,"d":2},"b":1}
{"name":"山田太郎"} スペース2 複数行、"name": "山田太郎"
{"a": 1,} — 1行9列:予期しない文字 }
{"id": 12345678901234567890} 圧縮 {"id":12345678901234567000}(警告あり)

よくある質問

JSONのどこが壊れているか分かりますか?

はい。入力を先頭から調べ、最初に規則に反した文字の行と列を報告し、その行を表示して該当箇所の下にキャレットを付けます。位置はブラウザーのエラーメッセージに頼らずツール自身が計算するため、どのブラウザーでも同じ結果になります。

コメントや末尾のカンマは使えますか?

使えません。RFC 8259で定義された厳密なJSONだけを受け付けます。コメント、末尾のカンマ、シングルクォートの文字列、引用符のないキーはエラーとして位置付きで報告します。

非常に大きな数値は変わってしまいますか?

変わることがあります。JavaScriptのJSONパーサーを使うため、9007199254740991(2^53-1)を超える整数は表現できる最も近い値に丸められます。そのような数値が入力に含まれると警告が表示されます。すべての桁が重要なIDは文字列にしてください。

JSONはサーバーに送信されますか?

いいえ。処理はすべてブラウザー内で行い、何もアップロード・保存しません。

ほしいツールはありますか?