JSONテキストを扱う作業は、たいてい3つの異なるタスクに集約されます。読みやすくすること、コンパクトにすること、そもそも正しいかどうかをチェックすることです。1つのツールにまとめられていることが多いものの、これらは3つの別々の操作です。
整形(pretty-print)
整形はインデント、改行、句読点まわりの空白を追加し、JSONの構造を目で読みやすくします。これは純粋に見た目の変更であり、データ自体には影響せず、表示のされ方だけが変わります。
圧縮(minify)
圧縮は不要な空白、改行、インデントをすべて取り除き、本当に必要な文字だけを残します。これによりファイルサイズが小さくなり、ネットワーク経由でデータを送ったり大量のデータを保存したりする際に重要になります。データの構造自体は変わりません。
検証
検証はテキストが構文的に正しいJSONかどうかをチェックします。よく検出されるエラーには、閉じ括弧の前の余分なカンマ、ダブルクォートの代わりのシングルクォート、クォートなしのオブジェクトキー、コメント(JSON標準ではまったく許可されていません)、閉じられていない括弧などがあります。有効なJSONであることは、そもそも整形や圧縮が機能するための前提条件です。
どんなときに何が必要か
- 整形 — APIのレスポンスをデバッグするときや、設定ファイルを手動で編集するとき。
- 圧縮 — ネットワーク経由でデータを送信する前や、本番用コードに埋め込む前。
- 検証 — パーサーがJSONファイルの読み込みを拒否する理由を診断するとき。
全角コロンが引き起こす「見えない」構文エラー
日本語IMEで入力していると、キーと値を区切る:や区切りの,を、変換候補や自動的な全角変換によって全角文字の「:」「,」(U+FF1AやU+FF0C)のまま確定してしまうことがあります。見た目はほぼASCIIの記号と区別がつきませんが、JSONパーサーはこれを認識せず構文エラーになります。設定ファイルを手で編集した後にパーサーが「どこが悪いのか分からない」まま失敗する場合、まずこの全角・半角の混入を疑う価値があります。検証ツールでエラー位置を特定すれば、目视では気づきにくいこの手のミスもすぐに見つかります。
JSON5とJSONCは同じJSONではありません
一部の環境(VS CodeやTypeScriptの設定ファイルなど)では、トレイリングカンマ・コメント・クォートなしのキーが許容されます — これはJSON5やJSONCという拡張形式であり、標準のJSON(RFC 8259)ではありません。厳密なJSONとして検証するバリデーターは、エディターが「理解」してくれるとしても、このようなファイルを正しく拒否します。