← ブログに戻る

JSON とは?定義と基礎知識

JSON の定義、歴史、構造を学びます。初心者向けの完全ガイド、データタイプ、シンタックスルール、実用例。

Big JSON Team10 分で読めますbeginner
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

10 分読む

# JSON とは?定義と基礎知識

JSON(JavaScript Object Notation)は、最も人気があり、広く使われているデータ交換形式です。このガイドは、JSON の基礎知識をゼロから学ぶあなたのための完全なリソースです。

JSON の定義

JSON は人間が読みやすく、コンピューターも簡単に解析できる軽量のデータ交換形式です。

主な特徴

  • 軽量 - XML より小さい
  • テキストベース - あらゆるプログラムで読取可能
  • 言語独立 - すべてのプログラミング言語で使用可能
  • 構造化 - キーと値のペア
  • 標準化 - RFC 7158 で定義

JSON の歴史

タイムライン

  • 2001年 - Douglas Crockford により提案
  • 2006年 - YAML が競合として登場
  • 2013年 - RFC 7158 として標準化
  • 2017年 - RFC 8259 として更新
  • 2020年代 - Web、API、モバイルの最終フォーマットへ

なぜ JSON が選ばれたのか

  • シンプル - 少ないシンボル
  • 高速 - 解析が速い
  • 標準 - JavaScript から派生
  • 拡張可能 - カスタムフィールドをサポート
  • JSON の構文

    JSON は複雑ではありません。いくつかの基本的なルールがあります:

    ルール 1:キーは常にダブルクォートで囲む

    {
    

    "name": "田中太郎",

    "age": 30

    }

    ❌ これはダメ:

    {
    

    name: "田中太郎"

    }

    ルール 2:文字列値はダブルクォートで囲む

    {
    

    "city": "東京",

    "country": "日本"

    }

    ルール 3:数値はクォートなし

    {
    

    "age": 30,

    "score": 95.5,

    "year": -100

    }

    ルール 4:カンマは各要素を区切る

    {
    

    "first": "太郎",

    "last": "田中",

    "age": 30

    }

    最後の要素の後にはカンマを付けない!

    ルール 5:末尾にカンマを付けない

    ❌ エラー:

    {
    

    "name": "田中",

    "age": 30,

    }

    ✅ 正しい:

    {
    

    "name": "田中",

    "age": 30

    }

    JSON のデータタイプ

    JSON は 6 つの基本データタイプをサポートします:

    1. 文字列(String)

    {
    

    "name": "田中太郎",

    "message": "こんにちは"

    }

    2. 数値(Number)

    {
    

    "age": 30,

    "score": 98.5,

    "temperature": -5,

    "scientific": 1.23e4

    }

    3. ブーリアン(Boolean)

    {
    

    "active": true,

    "deleted": false,

    "isAdmin": true

    }

    4. Null

    {
    

    "middleName": null,

    "phone": null,

    "email": "user@example.com"

    }

    5. 配列(Array)

    {
    

    "colors": ["赤", "青", "緑"],

    "numbers": [1, 2, 3, 4, 5],

    "mixed": [1, "文字", true, null],

    "nested": [[1, 2], [3, 4]]

    }

    6. オブジェクト(Object)

    {
    

    "person": {

    "name": "田中太郎",

    "age": 30,

    "address": {

    "city": "東京",

    "zipcode": "100-0001"

    }

    }

    }

    実践的な例

    シンプルなユーザープロフィール

    {
    

    "id": 1,

    "name": "田中太郎",

    "email": "tanaka@example.com",

    "age": 30,

    "active": true,

    "roles": ["user", "admin"]

    }

    API レスポンス

    {
    

    "status": "success",

    "data": {

    "users": [

    {

    "id": 1,

    "name": "田中太郎",

    "email": "tanaka@example.com"

    },

    {

    "id": 2,

    "name": "佐藤花子",

    "email": "sato@example.com"

    }

    ]

    },

    "timestamp": "2026-01-16T10:30:00Z",

    "count": 2

    }

    設定ファイル

    {
    

    "app": {

    "name": "マイアプリケーション",

    "version": "1.0.0"

    },

    "server": {

    "host": "localhost",

    "port": 3000,

    "ssl": true

    },

    "database": {

    "url": "postgresql://localhost/mydb",

    "poolSize": 10

    },

    "logging": {

    "level": "info",

    "format": "json"

    }

    }

    JSON の利点

    1. シンプル(わかりやすい)

    XML と比較すると:

    XML:
    <user>
    

    <name>田中太郎</name>

    <age>30</age>

    </user>

    JSON:
    {
    

    "name": "田中太郎",

    "age": 30

    }

    2. 軽量(小さいファイルサイズ)

    JSON は XML より約 50% 小さくなります。

    3. 高速パース

    ほぼすべての言語で高速に解析できます。

    4. ネストのサポート

    複雑なデータ構造を簡単に表現できます。

    5. コメント不可(機能)

    JSON にはコメントがありませんが、これにより構造が厳密になります。

    JSON の制限事項

    1. コメントなし

    {
    

    // これはコメント(JSON では不可)

    "name": "田中"

    }

    解決方法: JSON5 を使用するか、ドキュメントを別ファイルに入れる。

    2. 関数を表現できない

    JSON はデータのみを表現します。関数は保持できません。

    3. 循環参照をサポートしない

    {
    

    "user": {

    "name": "田中",

    "parent": { / 同じオブジェクトを参照?/}

    }

    }

    4. 日付型がない

    日付は文字列として保存する必要があります:

    {
    

    "createdAt": "2026-01-16",

    "createdAtIso": "2026-01-16T10:30:00Z",

    "timestamp": 1674129000

    }

    5. undefined がない

    JavaScript の undefined は JSON にはありません。null を使用します。

    プログラミング言語での JSON

    JavaScript

    const data = JSON.parse(jsonString);
    

    const jsonString = JSON.stringify(data);

    Python

    import json
    

    data = json.loads(json_string)

    json_string = json.dumps(data)

    Java

    JSONObject obj = new JSONObject(jsonString);
    

    String jsonString = obj.toString();

    C#

    var data = JsonConvert.DeserializeObject(json);
    

    string json = JsonConvert.SerializeObject(data);

    実世界での使用例

    1. Web API

    ほぼすべての REST API は JSON を使用します:

    GET /api/users/1
    

    Response:

    {

    "id": 1,

    "name": "田中太郎"

    }

    2. データベース

    MongoDB などの NoSQL データベースは JSON を使用します。

    3. 設定ファイル

    package.json、tsconfig.json など。

    4. モバイルアプリ

    iOS、Android アプリは JSON API と通信します。

    5. クラウドサービス

    AWS、Google Cloud、Azure はすべて JSON を使用します。

    ベストプラクティス

    1. 一貫性を保つ

    {
    

    "userId": 1,

    "userName": "田中",

    "userAge": 30

    }

    すべてのキーに同じケーシングを使用(キャメルケース)。

    2. 長いキー名を避ける

    {
    

    "user": {

    "firstName": "太郎",

    "lastName": "田中",

    "email": "tanaka@example.com"

    }

    }

    3. 意味のあるキー名を使う

    ❌ 意味不明:

    {
    

    "d": "2026-01-16",

    "u": "田中"

    }

    ✅ 明確:

    {
    

    "date": "2026-01-16",

    "user": "田中"

    }

    4. ネストを最小化

    深すぎるネストは避けてください(最大 3-4 レベル)。

    5. スキーマで検証

    JSON Schema を使用してデータを検証します。

    JSON が2026年に重要な理由

  • API標準 - ほぼすべての API は JSON を使用
  • モバイル - モバイル開発には必須
  • マイクロサービス - マイクロサービスアーキテクチャでは JSON が標準
  • AI/ML - データ交換形式として使用
  • NoSQL - モダンなデータベースが採用
  • クラウド - クラウドサービスの基準
  • 次のステップ

    JSON の基礎を理解しました。次に学ぶべきことは:

  • JSON の検証 - JSONLint で検証
  • API での使用 - REST API を構築
  • データベース - MongoDB で JSON を使用
  • スキーマ - JSON Schema を学ぶ
  • まとめ

    JSON は:

    • シンプル
    • 軽量
    • 高速
    • 標準化
    • 万能

    あなたのデータ交換形式として JSON を採用しましょう!

    Share:

    関連記事

    Read in English