JSON を理解する一番良い方法は例を読むことです。本ガイドは JSON フォーマットを基礎から辿ります —— 単純なオブジェクト、ネスト構造、配列、混合型 —— そして API、設定ファイル、データベースで遭遇する実世界の JSON パターンを示します。各例は有効でコピペ可能な JSON です。
これらをテスト、フィクスチャ、ドキュメント用のサンプル json ファイル として使えます —— 以下の各スニペットは実物の JSON 例 で、.json 拡張子で保存して直接読み込めます。
もっともシンプルな JSON 例
有効な JSON 値はそれ自体が完全な JSON ドキュメントです。最もシンプルな JSON ドキュメントはプリミティブです:
"hello" // 文字列
42 // 数値
true // 真偽値
null // null実務ではほぼすべての JSON ドキュメントはオブジェクトか配列のどちらかです。
JSON オブジェクト例
JSON オブジェクトはキーと値のペアの集まりです。キーはダブルクォートで囲まれた文字列。値はどの JSON 型 でも構いません。
{
"id": 42,
"name": "Alice Chen",
"email": "alice@example.com",
"age": 30,
"active": true,
"score": 98.6,
"nickname": null
}注意:JSON オブジェクトのキー順序は保証されません —— パーサは任意の順序でキーを返す可能性があります。
JSON 配列例
JSON 配列は値の順序付きリストです。要素は異なる型でもよく、順序は常に保持されます。
// 文字列の配列
["apple", "banana", "cherry"]
// 数値の配列
[1, 2, 3, 4, 5]
// 混合型
[42, "hello", true, null, { "key": "value" }]
// オブジェクトの配列(API レスポンスで一般的)
[
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" },
{ "id": 3, "name": "Carol" }
]ネストした JSON 例
オブジェクトと配列は任意の深さにネストできます。JSON の表現力はここから来ます。
{
"user": {
"id": 1001,
"name": "Alice Chen",
"address": {
"street": "123 Main St",
"city": "San Francisco",
"state": "CA",
"zip": "94102"
},
"tags": ["premium", "early-adopter"],
"preferences": {
"notifications": {
"email": true,
"sms": false,
"push": true
},
"theme": "dark"
}
}
}JSON フォーマット例:REST API レスポンス
典型的なページネーション API レスポンスはこんな感じ:
{
"status": "success",
"data": {
"page": 1,
"per_page": 10,
"total": 47,
"total_pages": 5,
"items": [
{
"id": "prod_001",
"name": "Wireless Headphones",
"price": 89.99,
"currency": "USD",
"in_stock": true,
"categories": ["electronics", "audio"],
"rating": 4.7,
"reviews_count": 2341
},
{
"id": "prod_002",
"name": "USB-C Hub",
"price": 39.99,
"currency": "USD",
"in_stock": false,
"categories": ["electronics", "accessories"],
"rating": 4.2,
"reviews_count": 891
}
]
},
"meta": {
"request_id": "req_8f3a2c",
"timestamp": "2024-10-15T14:32:00Z"
}
}JSON 設定ファイル例
JSON 形式の設定ファイルは JavaScript ツール群で一般的です。典型的な package.json の構造:
{
"name": "my-app",
"version": "1.0.0",
"description": "A sample application",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "jest",
"build": "tsc"
},
"dependencies": {
"express": "^4.18.2",
"lodash": "^4.17.21"
},
"devDependencies": {
"typescript": "^5.0.0",
"jest": "^29.0.0"
},
"engines": {
"node": ">=18.0.0"
}
}JSON データ形式:日付と時刻
JSON にはネイティブな日付型がありません。日付は文字列で表します。ISO 8601 が普遍的に受け入れられているフォーマットです:
{
"created_at": "2024-10-15T14:32:00Z", // UTC 日時
"updated_at": "2024-10-15T14:32:00+08:00", // タイムゾーンオフセット付き
"birth_date": "1990-06-21", // 日付のみ
"meeting_time": "09:00:00" // 時刻のみ
}あるいは、数値の Unix タイムスタンプ(エポックからの秒数)を使うシステムもあります:
{
"created_at": 1728999120,
"expires_at": 1761057600
}オプショナルフィールドと null フィールドを含む JSON
存在するが値がないフィールドには null を使い、オプショナルで存在しないフィールドは完全に省略してください。
{
"id": 5,
"name": "Bob",
"email": "bob@example.com",
"phone": null, // 存在するが未設定
"company": "Acme Corp",
"title": null // 存在するが未設定
// "fax" は完全に省略 —— 該当しないフィールド
}JSON エラー例(と直し方)
これらは JSON 書式のよくあるミスです:
// ❌ シングルクォート(JSON として無効)
{ 'name': 'Alice' }
// ✅ 修正:ダブルクォートを使う
{ "name": "Alice" }
// ❌ 引用符なしのキー
{ name: "Alice" }
// ✅ 修正:キーを引用符で囲む
{ "name": "Alice" }
// ❌ 末尾カンマ
{ "a": 1, "b": 2, }
// ✅ 修正:末尾カンマを削除
{ "a": 1, "b": 2 }
// ❌ JavaScript コメント
{ "debug": true // ロギングを有効化 }
// ✅ 修正:コメントを削除
{ "debug": true }
// ❌ Python のブール値
{ "active": True }
// ✅ 修正:小文字を使う
{ "active": true }JSON 文字列にこれらのエラーがあるなら、JSON Fix に貼り付ければ自動修復と整形を行います。
JSON Lines(NDJSON, jsonlines)例
ストリーミングログ、ML データセット、バルク API では1 行 1 JSON 値を \n で区切るのが慣習です。この形式は二つの名前で呼ばれます —— jsonlines(jsonlines.org 由来)と NDJSON —— が、仕様は同じ:
{"event":"login","user":"ada","at":"2026-05-28T09:00:00Z"}
{"event":"view","user":"ada","page":"/dashboard"}
{"event":"logout","user":"ada","at":"2026-05-28T09:42:00Z"} 各行は独立して parse できます。ファイル全体を JSON.parse() しないこと —— 改行で split して行ごとに parse してください。
OpenAPI レスポンス例
OpenAPI 仕様は JSON Schema 風のシェイプでレスポンスを定義します:
{
"openapi": "3.1.0",
"paths": {
"/users/{id}": {
"get": {
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["id", "email"],
"properties": {
"id": { "type": "integer" },
"email": { "type": "string", "format": "email" }
}
}
}
}
}
}
}
}
}
}日付のみ・時刻のみの例
ISO 8601 は純粋な日付と純粋な時刻の形式も定義しています —— 一日の特定時刻や特定日付が本質的に意味を持たない場合に便利:
{
"birth_date": "1815-12-10", // 日付のみ
"office_hours": "09:00:00", // 時刻のみ
"started_at": "2026-05-28T09:00:00Z" // フル日時、対比用
}GeoJSON 例
GeoJSON は JSON ベースの地理データの標準フォーマット:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
},
"properties": {
"name": "San Francisco",
"country": "US",
"population": 873965
}
}よくある質問
有効な JSON の例は?
最も単純なのは 42 や "hello" のような単一のプリミティブですが、実際の JSON の大半は { "name": "Alice", "age": 30, "active": true } のようなオブジェクトか、そうしたオブジェクトの配列です。
JSON で日付はどう表す?
JSON には日付型がありません。日付は文字列として保存し —— 普遍的には ISO 8601("2024-10-15T14:32:00Z")が選ばれ —— あるいは数値の Unix タイムスタンプとして保存します。
JSON で欠損値はどう表す?
存在するが値がないフィールドには null、該当しないフィールドはキーごと省略。JSON には undefined はありません。
ネストした JSON はどんな見た目?
オブジェクトと配列は任意の深さで他のオブジェクトと配列を含めます —— 上のネスト例と REST API 例を参照。根底のルールは JSON とは?
これらの例を試す
上の例をコピーして下のツールに貼り付け、データを探索してください:
- JSON Fix —— JSON のフォーマット、検証、修復
- JSON Diff —— 二つの JSON 例を並べて比較
- JSON とは? —— 六つのデータ型と JSON 文法の完全ガイド
- JSON のフォーマット方法 —— JavaScript、Python、jq、ブラウザで pretty-print
- JSON Stringify —— JSON 値をエスケープ済み文字列リテラルへ変換