JSON と JSON5 は見た目は似ていますが、「どれくらい人間に優しいか」「どれくらい厳格か」で大きく違います
🧩 JSONとは
JavaScript Object Notation の略で、
データ交換フォーマットとして最も一般的なものです。
✅ 特徴
・厳格でシンプル
・仕様が固定されていて機械処理に最適
・ほとんどの言語・ツールが標準対応
📋 制約
{
"name": "Mao",
"age": 25,
"languages": ["Swift", "Kotlin"]
}
・文字列は必ず ダブルクォート
・コメント不可
・末尾カンマ禁止
・キーもクォート必須
・数値表現 は10進数のみ
🌈 JSON5とは
JSON for Humans(人間に優しいJSON)で
JSONの上位互換として提案されたフォーマットです。
JavaScriptライクな書き方を許します。
✅ 特徴
・より柔軟で可読性が高い
・コメントや末尾カンマをサポート
・キーや文字列のクォート省略OK
・16進数や+∞などの数値表現が可能
📋 例
{
// コメントOK
name: 'Mao',
age: 25,
languages: ['Swift', 'Kotlin',], // 末尾カンマOK
version: 0x1f, // 16進数OK
}
🤔 JSON と JSON5 の比較
JSON は機械向けの厳格フォーマット、JSON5 は「人間向け」に拡張されたフォーマットです。下の表はブログでそのまま使える比較表です。
項目 | JSON | JSON5 |
---|---|---|
コメント | 不可(コメントなし) | 可(`//`、`/* */` が使える) |
末尾カンマ | 不可 | 可 |
キーのクォート | 必須(ダブルクォート) | 省略可(識別子としてのキーを許可) |
文字列のクォート | ダブルクォートのみ(`"`) | シングルクォートまたはダブルクォート可(`'` / `"`) |
数値表現 | 10進数のみ | 10進数、16進数、`NaN`、`Infinity` などを許可 |
対応ツール | 非常に多い(ほぼ標準) | ライブラリが必要(サポートは限定的) |
用途 | 機械間通信(API等)に最適 | 開発者向け設定ファイルや手で編集するデータに適する |
🧑🏻💻 まとめ
- JSON:厳格で機械向け。安全・標準的。
- JSON5:柔軟で人間向け。コメントや末尾カンマOK。
関連ワード: Android・AndroidStudio・iOS・iPhone・Javascript・Kotlin・python・Swift・アプリ・おすすめ・ツール・ライブラリ・今さら聞けない・初心者・開発