はじめに
APIレスポンスや設定ファイルのJSONが1行で読みにくいときは、改行とインデントを付けるとキーと値の階層を追いやすくなります。逆に転送や貼り付け用では、不要な空白や改行を取り除いた1行JSONが扱いやすい場合があります。
JSONはJavaScriptのオブジェクト記法と似ていますが、キーと文字列にはダブルクォートが必要で、末尾カンマやコメント、undefinedは使えません。エラーが出た場合は、エラー位置の周辺と直前の記号を確認するのが近道です。
ToolerのJSON整形・検証ツールでは、整形・圧縮・構文チェックをブラウザ内で行い、可能な範囲でエラーの行・列も確認できます。
JSONを整形(Pretty Print)する方法
JSON整形ではデータのキー・値・配列・オブジェクト構造はそのままに、改行とインデントを付けます。2スペースはコンパクト、4スペースは階層を見分けやすく、タブはエディタ設定に合わせたい場合に使えます。
整形後は、ネストの深さ、キーの並び、配列の要素を目視しやすくなります。APIのデバッグや設定値レビューでは、1行のJSONより整形済みJSONの方が差分も見つけやすくなります。
JSONを1行に圧縮(Minify)する方法
JSON圧縮では、文字列の中身を除く不要な空白・改行・インデントを削除し、1行へまとめます。データ構造が同じなら、整形JSONと圧縮JSONは解析後の内容が同じです。
ログやチャットへ貼り付ける場合、HTTPリクエストの例を短くしたい場合などに便利です。ただし人が直接レビューする用途では、圧縮しすぎるとミスを見つけにくくなります。
JSON構文エラーで確認するポイント
JSONが解析できないときは、エラー位置だけでなく、その直前の行も確認します。閉じ括弧やカンマの不足では、ブラウザが問題の発生地点より少し後ろをエラー位置として示すことがあります。
JavaScriptでは許される書き方でもJSONでは無効な場合があります。特にシングルクォート、コメント、末尾カンマ、undefined、NaN、InfinityはJSON値として使えません。
| よくある入力 | 原因 | 修正 |
|---|---|---|
| {name: "Tooler"} | キーがダブルクォートで囲まれていない | {"name":"Tooler"} |
| {"a":1,} | 最後の要素の後ろにカンマがある | {"a":1} |
| {"a":'text'} | 文字列がシングルクォート | {"a":"text"} |
| {"a":undefined} | undefinedはJSON値ではない | nullや文字列など仕様に合う値へ変更 |
JSONで使える値と使えない値
JSONの値として使えるのは、文字列、数値、true、false、null、配列、オブジェクトです。関数、undefined、SymbolなどJavaScript固有の値はそのままJSONへ保存できません。
日付にも専用のDate型はないため、ISO 8601形式などの文字列として表現し、受け取る側で日付として解釈する方法が一般的です。
大きな整数IDをJSONで扱うときの注意
JSON仕様上は大きな数値を書けますが、JavaScriptのNumberはIEEE 754の倍精度浮動小数点数であり、整数を正確に扱える範囲には上限があります。Number.MAX_SAFE_INTEGERは9,007,199,254,740,991です。
この値を超える注文ID、SNS ID、データベースIDなどをJSON.parseしてからJSON.stringifyすると、元の整数と異なる値になる可能性があります。識別子として使う値はAPI側で文字列として返す設計も検討してください。
JSON整形・検証ツールの使い分け
まず構文チェックでJSONとして有効か確認し、レビューやデバッグなら整形、貼り付けや転送用なら圧縮を使います。壊れたJSONは整形前にエラーを修正する必要があります。
機密情報、アクセストークン、個人情報を含むJSONを扱う場合は、利用するツールの処理場所も確認してください。Toolerでは入力JSONの解析・整形をブラウザ内で実行します。
公開前のチェックリスト
- ✓キーと文字列がダブルクォートで囲まれているか
- ✓末尾カンマが残っていないか
- ✓{ } と [ ] の数・対応が合っているか
- ✓undefined、NaN、Infinity、コメントが含まれていないか
- ✓巨大な整数IDがnumberとして入っていないか
読んだ内容をすぐ確認
JSON整形・検証を使う
JSONを整形・圧縮し、構文エラーの位置を確認できます。
よくある質問
Q. JSON Formatterとは何ですか?
A. JSONへ改行とインデントを付け、人が読みやすい形へ整えるツールや処理を指します。Pretty Printと呼ばれることもあります。
Q. JSONを整形するとデータは変わりますか?
A. 通常は空白・改行だけが変わり、解析後のデータ構造は同じです。ただしJavaScriptの安全整数を超える数値はparse時に精度が変わる可能性があるため注意が必要です。
Q. JSONの末尾カンマは使えますか?
A. 厳密なJSONでは使えません。オブジェクトや配列の最後の要素の後ろにあるカンマを削除してください。
Q. JSONにコメントを書けますか?
A. 標準JSONにはコメント構文がありません。コメントが必要な設定形式ではJSONCなど別形式が使われる場合があります。
Q. JSONエラーの行と列が表示されないことはありますか?
A. ブラウザが返すJSON.parseのエラー情報は環境によって異なるため、位置情報を取得できない場合があります。その場合はエラーメッセージと記号の対応を確認してください。

