レッスン 3
JSON のデータ型
文字列、数値、真偽値、null、および JSON が意図的に除外するもの。
JSON がサポートする値の種類はちょうど 6 つです。日付、関数、undefined はなく、テキストとしてリテラルに表現できるものだけです。
1. 文字列(String)
ダブルクォートで囲まれたテキスト。エスケープシーケンスには \"、\\、\n、\t、Unicode 用の \uXXXX があります。
"message": "Hello, \"world\"!"
2. 数値(Number)
JSON の数値は 10 進数です。NaN や Infinity は使えません。整数に先頭の + は不要で、小数や指数表記は許可されます。
"count": 42,
"ratio": 0.75,
"large": 1.2e6
3. 真偽値(Boolean)
リテラル true または false(小文字、クォートなし)。
"enabled": true
4. null
リテラル null は多くの API で「値がない」「空」を意味します — 文字列 "null" ではありません。
"middleName": null
5. オブジェクト(Object)
キーと値のペアの集合(順序はパーサーによって保持されることがありますが、意味論には依存しないでください)。
6. 配列(Array)
順序付きの値の一覧。パース後はホスト言語でゼロからインデックスされます。
JSON に含まれないもの
| JSON にないもの | よくある回避策 |
|---|---|
undefined | キーを省略するか null を使う |
Date | ISO 8601 文字列: "2026-05-22T10:00:00Z" |
Map, Set | 配列またはオブジェクト |
| コメント | 外部ドキュメントや "_comment" フィールド(非標準) |
| シングルクォート文字列 | ダブルクォートを使う |
これらの制限を理解しておくと、JSON を強い型のアプリケーションモデルにマッピングするときの混乱を防げます。