JSONとは?基本構文と整形のベストプラクティス
JSONとは
JSON(JavaScript Object Notation)は、データを構造化して記述するための軽量なテキストフォーマットです。もともとJavaScriptのオブジェクト表記法から派生しましたが、現在では言語に依存しない汎用的なデータ交換形式として広く使われています。
REST APIのレスポンス、設定ファイル、データベースへの保存など、Web開発のあらゆる場面でJSONは登場します。そのシンプルさと可読性の高さが、XMLに代わってデファクトスタンダードとなった理由です。
基本構文とデータ型
JSONで使用できるデータ型は、以下の6種類に限定されています。
| データ型 | 説明 | 例 |
|---|---|---|
| 文字列 | ダブルクォートで囲む | "Hello" |
| 数値 | 整数または浮動小数点 | 42, 3.14 |
| 真偽値 | true または false | true |
| null | 空の値 | null |
| オブジェクト | キーと値のペア | {"key": "value"} |
| 配列 | 値の順序付きリスト | [1, 2, 3] |
オブジェクトの構文
オブジェクトは波括弧 {} で囲み、キーと値のペアをコロンで区切ります。複数のペアはカンマで区切ります。
{
"name": "田中太郎",
"age": 30,
"isActive": true,
"email": "tanaka@example.com"
}
重要なルールとして、キーは必ずダブルクォートで囲む必要があります。シングルクォートやクォートなしはJSONとして無効です。
配列の構文
配列は角括弧 [] で囲み、値をカンマで区切ります。異なるデータ型を混在させることも可能です。
{
"fruits": ["りんご", "みかん", "ぶどう"],
"mixed": [1, "hello", true, null]
}
ネスト構造
オブジェクトと配列は自由にネスト(入れ子)にできます。これにより、複雑なデータ構造を表現できます。
{
"company": "Example Corp",
"employees": [
{
"name": "佐藤",
"department": "開発部",
"skills": ["JavaScript", "Python"]
},
{
"name": "鈴木",
"department": "デザイン部",
"skills": ["Figma", "CSS"]
}
]
}
よくあるエラーと対策
JSONの構文エラーは、開発中に頻繁に遭遇する問題です。主な原因と対策を見ていきましょう。
1. 末尾カンマ(トレイリングカンマ)
JavaScriptでは許容される末尾カンマですが、JSONでは構文エラーになります。
// 無効なJSON
{
"name": "田中",
"age": 30,
}
// 有効なJSON
{
"name": "田中",
"age": 30
}
2. シングルクォートの使用
JSONではダブルクォートのみが有効です。
// 無効なJSON
{'name': '田中'}
// 有効なJSON
{"name": "田中"}
3. コメントの記述
JSON仕様にはコメント構文がありません。// や /* */ を含むとパースエラーになります。設定ファイルでコメントが必要な場合は、JSON5やJSONCの使用を検討してください。
4. 数値の先頭ゼロ
0 以外の数値で先頭にゼロを付けると無効になります。
// 無効なJSON
{"code": 0123}
// 有効なJSON
{"code": 123}
整形のベストプラクティス
可読性と保守性を高めるために、以下のベストプラクティスを心がけましょう。
インデントの統一
JSONファイルを人が読む場合は、2スペースまたは4スペースのインデントを使います。チームで統一することが重要です。
{
"settings": {
"theme": "dark",
"fontSize": 14,
"autoSave": true
}
}
キーの命名規則
APIの設計では、キーの命名規則を統一しましょう。一般的にはキャメルケース(camelCase)またはスネークケース(snake_case)が使われます。
{
"userName": "tanaka",
"createdAt": "2026-03-08T10:00:00Z"
}
適切なデータ型の選択
文字列として数値を格納するのは避け、適切なデータ型を使いましょう。
// 避けるべきパターン
{"price": "1000", "isAvailable": "true"}
// 推奨パターン
{"price": 1000, "isAvailable": true}
JSONの主な用途
JSONは現代のWeb開発において欠かせない存在です。代表的な用途を紹介します。
- REST API: クライアントとサーバー間のデータ通信で最も広く使われるフォーマット
- 設定ファイル:
package.json、tsconfig.jsonなど、開発ツールの設定に利用 - データストレージ: MongoDBなどのNoSQLデータベースでドキュメント形式として採用
- ログ出力: 構造化ログとしてJSON形式で出力し、解析ツールで処理
他のデータ形式との比較
| 特徴 | JSON | YAML | XML | CSV |
|---|---|---|---|---|
| 可読性 | 高い | 非常に高い | やや低い | 高い(表形式) |
| データ型 | 6種 | 豊富 | なし | なし |
| コメント | 不可 | 可能 | 可能 | 不可 |
| ファイルサイズ | 小さい | 小さい | 大きい | 非常に小さい |
| ネスト構造 | 対応 | 対応 | 対応 | 非対応 |
用途に応じて最適なフォーマットを選択することが重要です。設定ファイルではコメントが書けるYAML、テーブル形式のデータにはCSV、APIのレスポンスにはJSONといった使い分けが一般的です。
まとめ
JSONはシンプルな構文と高い互換性により、Web開発の標準的なデータ交換形式として定着しています。基本構文をしっかり押さえ、よくあるエラーを避けることで、効率的な開発が可能になります。JSONの整形やバリデーションには、専用のツールを活用することで作業効率が大幅に向上します。
