FORMAT COMPARISON
JSON5 vs JSON
JSON5はJSONのデータモデルを保ちながら、人が手書きしやすいようコメント、識別子形式のキー、単引用符、末尾カンマ、16進数などを追加する構文拡張です。標準JSONは厳密な構文で、Web APIや汎用パーサーとの相互運用に広く使われます。
JSON5とJSON、どちらを選ぶ?
人が編集する設定データでコメントや簡略なキー記法を使いたい場合、利用側がJSON5対応と確認できればJSON5を検討します。通信API、標準パーサー、外部システムとの連携ではJSONを使います。JSON5のままJSONパーサーに渡せるとは限らず、出力時に標準JSONへ変換するならInfinity/NaNや16進数等の値変換も検証してください。
JSON5向き
手作業で編集する設定ファイル・コメントを残した構造化データ
- JSONに近い構文を読み書きしやすくしたい
- JSON5対応パーサーが確定しているアプリ設定
JSON向き
Web API・設定ファイル・データ交換
- 構造化データの受け渡し
基本情報を比較
JSON5とJSONの主な違いを確認できます。
| 項目 | JSON5 | JSON |
|---|---|---|
| 拡張子 | .json5 | .json |
| MIME Type | application/json | application/json |
| 主な用途 | 手作業で編集する設定ファイル・コメントを残した構造化データ | Web API・設定ファイル・データ交換 |
| 圧縮 | none | 該当なし |
| 開く方法 | JSON5対応エディタやパーサーで開きます。標準JSONパーサーへそのまま渡すと、コメントや末尾カンマなどで解析に失敗する場合があります。 | テキストエディタ、IDE、JSON対応ビューアで開けます。 |
| 書き出し・変換 | 標準JSONへ変換するとコメントや書式上の自由度は失われます。変換後のJSONを対象アプリやAPIで検証し、設定値が意図どおりか確認します。 | アプリケーションや変換ツールでCSVなどへ変換できます。 |
用途別の選び方
作りたいものや使う場面から選べます。
JSONに近い構文を読み書きしやすくしたい
手作業で編集する設定ファイル・コメントを残した構造化データ
JSON5向きJSON5対応パーサーが確定しているアプリ設定
手作業で編集する設定ファイル・コメントを残した構造化データ
JSON5向き構造化データの受け渡し
Web API・設定ファイル・データ交換
JSON向き確認ポイント 1
JSON5はコメント、単引用符、非引用の識別子キー、末尾カンマ、16進数、Infinity/NaNなどの数値構文を許容します。これらはRFC 8259 JSON文法には含まれず、標準JSONパーサーで拒否されることがあります。
使い分け確認ポイント 2
JSON5はJSONのsupersetとして同じ基本的なobject/array/string/number/boolean/nullデータ型を使いますが、構文を受け入れるパーサーは別です。ファイル拡張子やContent-Typeだけで互換性を推測せず、対象ツールがJSON5として解析するか確認してください。
使い分け選ぶ理由を詳しく
- JSON5をJSONへ変換する際、コメントや書式上の意図は失われ、Infinity/NaN等はJSONに直接表せません。数値をnull等へ置換する前にアプリの意味を決め、重複キー、数値精度、文字コード、出力の厳密なJSON適合性を検証してください。