JSON整形・構文チェック

JSONを読みやすく整形(インデント)したり、1行に圧縮したり、開閉できるツリーで表示したりします。構文エラーは行・文字位置と該当箇所を表示します。

使い方

  1. 「入力(JSON)」にJSONを貼り付けます。
  2. インデント(スペース2つ・4つ・タブ)を選び、「整形する」を押します。1行にしたい場合は「圧縮(1行)」、確認だけなら「構文チェックのみ」を押します。
  3. 「ツリー表示」を押すと、オブジェクトと配列を開閉できるツリーで表示します。「すべて開く」「すべて閉じる」でまとめて切り替えられます。
  4. エラーがあると、行・文字位置とその周辺が表示されます。修正してもう一度押してください。
  5. 結果を「コピー」するか、「ダウンロード」で .json ファイルとして保存します。

注意事項

  • 入力は5MBまでです。入れ子は1,000階層まで処理します。
  • 標準のJSON(RFC 8259)のみ対応します。コメント、末尾のカンマ、シングルクォート、NaN・Infinityなどはエラーになります。
  • 重複したキーはエラーにせず、そのまま残したうえで警告します。
  • ツリー表示は値が2万個までのJSONに対応します。それより大きい場合は「整形する」を使ってください。
  • 先頭のBOMは取り除いて処理します。結果は改行コードLFで出力します。
  • 入力内容は保存しません。ページを閉じると消えます。

計算・変換の仕組み

JSON.parseを使わず、文字を1つずつ読む独自の解析で構文を確認します。そのため、エラーの説明と位置はブラウザによって変わりません。

文字列と数値は入力に書かれたまま出力します。大きな整数(2の53乗を超える値)の桁落ち、1.0が1になる変化、1e400がnullになる変化、\u0041などのエスケープの書き換えは起きません。変わるのは空白と改行だけです。

同じオブジェクト内で同じキーが2回以上出てくると、キー名・場所(例:$.items[0])・行と文字位置を表示します。多くのプログラムでは最後の値だけが使われます。

ツリー表示も同じ解析結果から作るため、値は入力に書かれた文字のまま表示されます(大きな整数も桁が変わりません)。キー名だけはエスケープを解いて表示します。

圧縮すると、圧縮前と圧縮後のサイズ(UTF-8のバイト数)を表示します。

よくある質問

入力したJSONはどこかに送信されますか?

いいえ。整形・チェックはすべてブラウザ内で行い、サーバーには送信しません。

大きな数値の桁が変わることはありますか?

ありません。数値は書かれた文字のまま出力するため、12345678901234567890 のような値もそのまま残ります。ツリー表示でも同じです。

コメント付きのJSON(JSONC)は使えますか?

使えません。コメントの位置でエラーになります。コメントを削除してから整形してください。

文字位置はどう数えていますか?

行の先頭を1文字目として、絵文字なども1文字として数えます。タブも1文字です。

最終更新日: