JSON形式の書き方とは?基本ルールから実践的な使い方まで初心者向けに徹底解説

 

はじめに

現代のWeb開発やAPI通信において、**JSON(JavaScript Object Notation)**は最も重要なデータ交換形式の一つです。その軽量性と可読性の高さから、REST APIのレスポンス、設定ファイル、データストレージなど、様々な場面で広く使用されています。

JSONは「JavaScript Object Notation」の略ですが、現在ではJavaScriptに限らず、ほぼすべてのプログラミング言語でサポートされている標準的なデータ形式となっています。

本記事では、JSONの基本的な書き方から実践的な使用方法まで、初心者にもわかりやすく詳しく解説します。正しいJSON形式を理解することで、Web開発やAPI設計において効率的にデータを扱えるようになるでしょう。

JSONとは

基本定義

**JSON(JavaScript Object Notation)**は、データを構造化して表現するためのテキストベースのデータ交換形式です。人間にとって読み書きしやすく、機械にとっても解析・生成しやすいという特徴があります。

JSONの特徴

  • 軽量:XMLと比較して記述が簡潔
  • 可読性:人間が理解しやすい構造
  • 言語非依存:多くのプログラミング言語でサポート
  • 標準化:RFC 7159で標準仕様が定義

JSONの用途

Web開発での用途

  • REST APIのリクエスト・レスポンス
  • Ajaxによる非同期通信
  • 設定ファイル(package.json、tsconfig.jsonなど)

データ保存・交換での用途

  • NoSQLデータベースでのドキュメント保存
  • ログファイルの構造化
  • システム間のデータ交換

JSONの基本構造

JSONは6つの基本的なデータ型で構成されています:

1. 文字列(String)

文字列は必ずダブルクォーテーション(”)で囲みます。

{
  "name": "田中太郎",
  "email": "tanaka@example.com",
  "message": "こんにちは"
}

重要なポイント

  • シングルクォーテーション(’)は使用不可
  • 特殊文字はエスケープが必要
  • Unicode文字も使用可能

2. 数値(Number)

整数と小数点数の両方に対応しています。

{
  "age": 30,
  "height": 175.5,
  "temperature": -15.2,
  "score": 0
}

数値の記述規則

  • 先頭に0を付けない(08ではなく8)
  • 指数表記も可能(1.23e+4)
  • 16進数表記は不可

3. 真偽値(Boolean)

trueまたはfalseの値を取ります。

{
  "isActive": true,
  "isDeleted": false,
  "hasPermission": true
}

4. null値

値が存在しないことを表現します。

{
  "middleName": null,
  "previousJob": null
}

5. オブジェクト(Object)

キーと値のペアをカーリーブレース({})で囲んだ構造です。

{
  "user": {
    "id": 123,
    "name": "田中太郎",
    "profile": {
      "bio": "エンジニアです",
      "location": "東京"
    }
  }
}

オブジェクトの規則

  • キーは必ず文字列(ダブルクォートで囲む)
  • 値は任意のJSONデータ型
  • 複数のキーはカンマで区切る
  • 最後の要素の後にカンマは不可

6. 配列(Array)

値のリストをスクエアブラケット([])で囲んだ構造です。

{
  "fruits": ["apple", "banana", "orange"],
  "numbers": [1, 2, 3, 4, 5],
  "mixed": ["text", 123, true, null]
}

配列の規則

  • 異なるデータ型を混在可能
  • 順序が保持される
  • インデックスは0から開始

JSONの書き方の基本ルール

1. 構文規則

必須ルール

  • 文字列はダブルクォートで囲む
  • キーは必ず文字列として記述
  • 最後の要素の後にカンマを付けない
  • コメントは使用不可

正しい例

{
  "name": "田中太郎",
  "age": 30,
  "hobbies": ["読書", "映画鑑賞"]
}

間違った例

{
  'name': '田中太郎',  // シングルクォート使用(エラー)
  "age": 30,
  "hobbies": ["読書", "映画鑑賞"],  // 最後のカンマ(エラー)
}

2. エスケープ文字

特殊文字を文字列内で使用する場合は、エスケープが必要です。

{
  "message": "彼は\"Hello\"と言いました",
  "path": "C:\\Users\\Documents",
  "newline": "1行目\n2行目",
  "unicode": "日本語: \u65E5\u672C\u8A9E"
}

主なエスケープ文字

  • \": ダブルクォート
  • \\: バックスラッシュ
  • \/: スラッシュ
  • \n: 改行
  • \t: タブ
  • \uXXXX: Unicode文字

3. インデント・改行

JSONでは厳密な改行やインデントの規則はありませんが、可読性のために適切にフォーマットすることが重要です。

フォーマット前

{"name":"田中太郎","age":30,"address":{"city":"東京","zip":"100-0001"}}

フォーマット後

{
  "name": "田中太郎",
  "age": 30,
  "address": {
    "city": "東京",
    "zip": "100-0001"
  }
}

実践的なJSON例

1. ユーザー情報の表現

{
  "user": {
    "id": 12345,
    "username": "tanaka_taro",
    "profile": {
      "firstName": "太郎",
      "lastName": "田中",
      "email": "tanaka@example.com",
      "age": 30,
      "isVerified": true,
      "lastLogin": "2024-03-15T10:30:00Z"
    },
    "preferences": {
      "language": "ja",
      "timezone": "Asia/Tokyo",
      "notifications": {
        "email": true,
        "sms": false,
        "push": true
      }
    },
    "roles": ["user", "contributor"]
  }
}

2. 商品カタログの表現

{
  "products": [
    {
      "id": "prod_001",
      "name": "ワイヤレスヘッドフォン",
      "category": "electronics",
      "price": {
        "amount": 15800,
        "currency": "JPY"
      },
      "specifications": {
        "color": "ブラック",
        "weight": "250g",
        "batteryLife": "30時間"
      },
      "availability": {
        "inStock": true,
        "quantity": 50,
        "warehouse": "東京倉庫"
      },
      "reviews": {
        "average": 4.5,
        "count": 128
      },
      "tags": ["wireless", "bluetooth", "noise-canceling"]
    }
  ]
}

3. API レスポンスの表現

{
  "status": "success",
  "timestamp": "2024-03-15T15:30:45.123Z",
  "data": {
    "users": [
      {
        "id": 1,
        "name": "田中太郎",
        "email": "tanaka@example.com"
      },
      {
        "id": 2,
        "name": "佐藤花子",
        "email": "sato@example.com"
      }
    ],
    "pagination": {
      "currentPage": 1,
      "totalPages": 10,
      "totalItems": 95,
      "itemsPerPage": 10
    }
  },
  "errors": null
}

よくある間違いと対処法

1. 構文エラー

カンマの配置ミス

// 間違い:最後にカンマがある
{
  "name": "田中太郎",
  "age": 30,
}

// 正しい:最後のカンマを削除
{
  "name": "田中太郎",
  "age": 30
}

引用符の間違い

// 間違い:シングルクォート使用
{
  'name': '田中太郎'
}

// 正しい:ダブルクォート使用
{
  "name": "田中太郎"
}

2. データ型の間違い

数値の表現エラー

// 間違い:先頭に0がある
{
  "code": 0123
}

// 正しい:適切な数値表現
{
  "code": 123
}

undefined値の使用

// 間違い:undefinedは無効
{
  "value": undefined
}

// 正しい:nullまたは省略
{
  "value": null
}

3. エスケープの忘れ

// 間違い:特殊文字のエスケープなし
{
  "path": "C:\Users\Documents"
}

// 正しい:適切なエスケープ
{
  "path": "C:\\Users\\Documents"
}

JSONの検証とツール

1. オンライン検証ツール

主要な検証サイト

  • JSONLint
  • JSON Formatter & Validator
  • JSONEditor Online

これらのツールを使用することで、JSON形式の正確性を確認できます。

2. エディターでの支援機能

Visual Studio Code

  • 自動フォーマット機能
  • 構文ハイライト
  • エラー検出機能

その他のエディター

  • Sublime Text
  • Atom
  • IntelliJ IDEA

3. プログラムでの検証

多くのプログラミング言語でJSON検証ライブラリが提供されています。

JavaScript

try {
  JSON.parse(jsonString);
  console.log("有効なJSON");
} catch (error) {
  console.log("無効なJSON:", error.message);
}

ベストプラクティス

1. 命名規則

キー名の規則

  • camelCase または snake_case で統一
  • 意味のある名前を使用
  • 略語の多用を避ける
// 良い例
{
  "firstName": "太郎",
  "emailAddress": "tanaka@example.com",
  "createdAt": "2024-03-15T10:30:00Z"
}

// 避けるべき例
{
  "fn": "太郎",
  "mail": "tanaka@example.com",
  "ct": "2024-03-15T10:30:00Z"
}

2. 構造設計

適切な階層化

  • 論理的なグループ化
  • 深すぎるネストの回避
  • 一貫性のある構造

配列 vs オブジェクト

  • 順序が重要な場合は配列
  • キーでアクセスする場合はオブジェクト

3. データ型の選択

適切なデータ型の使用

  • 数値は文字列ではなく数値型
  • 真偽値はbooleanを使用
  • 空の値はnullを使用
// 良い例
{
  "age": 30,
  "isActive": true,
  "middleName": null
}

// 避けるべき例
{
  "age": "30",
  "isActive": "true",
  "middleName": ""
}

4. セキュリティ考慮事項

機密情報の取り扱い

  • パスワードやトークンを平文で保存しない
  • 個人情報の適切な保護
  • 必要最小限の情報のみを含める

入力検証

  • 受信したJSONデータの検証
  • 適切なサイズ制限の設定
  • XSS攻撃対策

まとめ

JSON形式の正しい書き方を理解することは、現代のWeb開発において必須のスキルです。基本的な構文ルールから実践的な使用方法まで、以下のポイントを押さえることが重要です。

基本ルールの重要点

  1. 文字列はダブルクォートで囲む
  2. 最後の要素の後にカンマを付けない
  3. キーは必ず文字列として記述
  4. 適切なエスケープ文字の使用

実践的なポイント

  1. 一貫性のある命名規則
  2. 適切なデータ型の選択
  3. 論理的な構造設計
  4. セキュリティへの配慮

JSONは単純な構文でありながら、非常に強力で柔軟なデータ交換形式です。基本ルールを正しく理解し、ベストプラクティスに従うことで、保守性が高く、エラーの少ないJSONデータを作成できるようになります。

また、各種検証ツールやエディターの支援機能を活用することで、効率的にJSONを記述・管理することができます。継続的な学習と実践を通じて、より高品質なJSON設計スキルを身に付けていきましょう。

■プロンプトだけでオリジナルアプリを開発・公開してみた!!

■AI時代の第一歩!「AI駆動開発コース」はじめました!

テックジム東京本校で先行開始。

■テックジム東京本校

「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。

<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。

<オンライン無料>ゼロから始めるPython爆速講座