JSON整形

貼り付けるだけで自動整形。エラーは行番号と列で指摘、インデントは 2/4/Tab から選択、圧縮も1クリック。

—

使い方

  1. 左の入力欄に JSON を貼り付けます。入力した瞬間に自動で整形が走るので、最初の1回だけ「整形」を押せば、あとは編集するたびに右の出力欄が追従します。
  2. 構文エラーがあると下部の赤いバーに エラー (○行×列): ... の形式で位置が出ます。ボタン押下時はキャレットが該当位置に自動で飛ぶので、目で行をたどる手間が省けます。
  3. インデントは 2 / 4 / Tab から選択できます。pretty モード中に切り替えれば即座に再整形されます。Tab はそのまま \t 文字として出力されるので、読み手のエディタの Tab 幅設定に従います。
  4. 「圧縮」ボタンで改行と空白を取り除いた 1行 JSON (minify) に切り替えできます。再度「整形」を押せば pretty に戻ります。圧縮モード中はインデント切替は効きません。
  5. 右下のステータスバーに「文字数 / バイト数 (UTF-8) / 行数」が常時表示されるので、API のサイズ上限調査や、ペイロード削減の効果測定にもそのまま使えます。
  6. 「結果をコピー」で出力をクリップボードへ。「サンプル」を押すと動作確認用の JSON が入力欄に入ります。Cmd / Ctrl + K で入力欄に即フォーカスできるショートカット付きです。

こんな時に使えます

API レスポンスの中身を読みたい

ターミナルや DevTools に出てきた1行 JSON を貼り付けて整形すれば、ネストの構造がそのまま目で追えるようになります。デバッグ時にレスポンスを Slack に貼るときも、整形済みのほうがレビュアーに親切です。

構文エラーの原因を特定したい

末尾カンマ、シングルクォート、キーの引用符抜けなどの「ありがちな壊れ方」を、行番号と列番号でピンポイント指摘します。長文 JSON でも、エラー位置に直接ジャンプできるので原因調査が早く終わります。

ペイロードを最小化したい

設定ファイルや埋め込み用の JSON を minify モードで圧縮し、文字数・バイト数の差をその場で確認できます。CDN 配信のサイズ削減や、URL クエリ・data-* 属性への埋め込みに便利です。

機密を含む JSON を扱いたい

パース・整形はすべてブラウザ内で完結します。入力は端末の localStorage に保存されるのみで、サーバーには一切送信されません。社外秘のトークンや個人情報を含む JSON でも、外に出ない設計です。

仕様のポイント

もっと詳しく:JSON でつまずきやすいポイント

壊れやすい典型パターン

JSON が構文エラーになる原因はだいたい決まっています。末尾カンマ([1,2,])、シングルクォート(JSON はダブルクォートのみ)、キーの引用符抜け({name:1})、先頭の BOM 混入、文字列内の未エスケープな改行・制御文字、そして NaN / Infinity(JSON には存在しない値)あたりです。本ツールは壊れた位置を行番号と列で示すので、長い JSON でも原因の1か所にすぐ辿り着けます。

JSON / JSON5 / JSONC / NDJSON の違い

「JSON だと思っていたら別仕様だった」もよくある詰まりです。JSON5 はコメント・末尾カンマ・シングルクォートを許す拡張、JSONC はコメント付き JSON(VS Code の設定ファイルなど)、NDJSON は1行に1つの JSON を並べたログ向け形式です。本ツールは 厳密な JSON のみを扱うため、これらの記法はエラーになります。元データがどの方言かを意識すると、エラーの理由が腑に落ちます。

大きな数値は精度が落ちる

JSON の数値そのものに桁数の上限はありませんが、JavaScript の JSON.parse は数値を IEEE 754 の倍精度浮動小数として読みます。そのため 253(9,007,199,254,740,992)を超える整数は正確に表現できず、末尾が変わってしまうことがあります。Twitter の Snowflake ID や 64bit の DB 採番など、巨大な整数 ID は文字列として持つのが定石です。整形時に数値が変わって見えたら、この丸めを疑ってください。

関連ツール

他にもいくつかの単機能ツールを揃えています。

よくある質問

コピペした JSON がエラーになります
よくある原因は末尾カンマ ([1,2,])、シングルクォート、キーに引用符が無い、BOM 混入など。エラーは「○行×列」で位置を示すので、そこから前後を見直してみてください。
コメントは使えますか?
JSON 仕様上コメントは認められていません。JSON5 や JSONC は別仕様で、本ツールは厳密な JSON のみ扱います。
データはサーバーに送信されますか?
いいえ。パース・整形はすべてブラウザ内で完結します。入力は端末の localStorage にのみ保存されます。
巨大な JSON でも動きますか?
ブラウザ側の JSON.parse を使っているため、数十MB程度までは実用的に動きます。ただし UI への表示は数百万文字を超えると重くなるので、必要な部分だけ整形するのを推奨します。
インデントを Tab にすると広すぎます
ブラウザの Tab 幅設定に依存します。本ツールは Tab 文字を出力します。読み手のエディタで Tab 幅を指定してください。