はじめに:JSONはデータ交換の「世界共通語」
Webアプリケーション、モバイルアプリ、AIサービス——現代のソフトウェアがデータをやり取りする際に最も広く使われているフォーマットが「JSON」です。REST APIのレスポンス、設定ファイル、NoSQLデータベースのデータ構造など、JSONはプログラミングの至る所に登場します。
本記事では、JSONの基本概念、書き方、XMLやCSVとの違い、API連携での活用、さらにAI開発でのJSON活用まで、体系的に解説します。
第1章:JSONの定義と基本概念
JSONとは何か
JSON(JavaScript Object Notation:ジェイソン)とは、データを構造化して表現するための軽量なテキストベースのフォーマットです。名前に「JavaScript」とありますが、特定のプログラミング言語に依存せず、Python、Java、Go、PHP、Ruby等のほぼ全ての言語で読み書きが可能です。
JSONの最大の特徴は「人間にも機械にも読みやすい」ことです。XMLと比較してタグの記述が不要で簡潔であり、CSVと比較して階層構造(ネスト)を表現できます。
JSONの基本構文
JSONは「キー(名前)と値のペア」でデータを表現します。
基本ルール:
- キーは必ずダブルクォーテーション(")で囲む
- キーと値はコロン(:)で区切る
- 複数のペアはカンマ(,)で区切る
- オブジェクトは波括弧 { } で囲む
- 配列は角括弧 [ ] で囲む
JSONで使えるデータ型
- 文字列:ダブルクォーテーションで囲む(例:"東京")
- 数値:整数・小数(例:42、3.14)
- 真偽値:true または false
- null:値がないことを示す
- オブジェクト:{ } で囲まれたキーと値のペアの集合
- 配列:[ ] で囲まれた値の順序付きリスト
第2章:JSONとXML・CSVの比較
JSON vs XML
- 記述量:JSONはXMLより簡潔。XMLは開始タグ・終了タグが必要でテキスト量が多い
- 可読性:JSONの方が人間にとって読みやすい
- パース速度:JSONの方が高速にパース(解析)できる
- スキーマ:XMLはXSDによる厳格なスキーマ検証が可能。JSONはJSON Schemaで対応
- コメント:XMLはコメント記述可能。JSON標準にはコメント機能がない
- 用途:JSONはAPI通信・設定ファイル、XMLはSOAP・SVG・設定ファイル
2026年現在、新規のWeb API開発ではJSONがデファクトスタンダードであり、XMLが選択されるのはレガシーシステムとの互換性が必要な場合に限られます。
JSON vs CSV
- 構造化:JSONは階層構造(ネスト)を表現可能。CSVはフラットな表形式のみ
- データ型:JSONは文字列・数値・真偽値・null等を区別。CSVは全てテキスト
- ファイルサイズ:同じデータ量ではCSVの方が小さい
- 可読性:表形式データはCSVの方が見やすい。構造化データはJSONの方が見やすい
- 用途:JSONはAPI・設定・NoSQL、CSVはデータ移行・帳票・Excel連携
第3章:JSONの活用シーン
REST API通信
REST APIのリクエストボディとレスポンスボディは、JSONが事実上の標準フォーマットです。クライアント(フロントエンド)とサーバー(バックエンド)間のデータ交換にJSONが使われます。
設定ファイル
package.json(Node.js)、tsconfig.json(TypeScript)、settings.json(VS Code)など、多くの開発ツールの設定ファイルにJSONが採用されています。
NoSQLデータベース
MongoDB、Firebase Firestore、Amazon DynamoDB等のNoSQLデータベースは、JSON(またはBSON)形式でデータを保存・検索します。
AIサービスとの連携
OpenAI API、Claude API等のAIサービスとの通信はJSON形式で行われます。プロンプトの送信もAIの応答もJSON構造であり、AIエージェント開発においてJSONの理解は必須です。
renueでは、AIエージェントの開発においてJSON形式のAPIリクエスト・レスポンス設計を日常的に行っています。OpenAI Agents SDKのツール定義、関数呼び出しのパラメータ、構造化出力(Structured Outputs)など、AIとJSONは不可分の関係にあります。
第4章:JSONの書き方のベストプラクティス
- キー名はキャメルケース:firstName、lastName等。スネークケース(first_name)も一般的だが、プロジェクト内で統一することが重要
- 一貫したデータ型:同じキーには常に同じデータ型の値を格納。nullと文字列を混在させない
- 日付のフォーマット:ISO 8601形式("2026-04-04T00:00:00Z")を推奨
- ネストの深さを制限:3〜4階層以内が読みやすさの目安。深すぎるネストはデータ設計の見直しを検討
- バリデーション:JSON Schemaを使ってデータの構造・型・必須項目を定義し、不正なデータを事前に検出
第5章:JSONの注意点
コメントが書けない
JSON標準にはコメント機能がありません。設定ファイルでコメントが必要な場合は、JSONC(JSON with Comments)やYAML等の代替フォーマットを検討します。
末尾カンマ(トレイリングカンマ)
JSON標準では、最後の要素の後にカンマを付けるとパースエラーになります。JSONCやJavaScriptではトレイリングカンマが許容されますが、厳格なJSONでは不可です。
大規模データの処理
巨大なJSONファイル(数GB以上)は一度にメモリに読み込むと問題が生じます。ストリーミングパーサー(ijson等)やNDJSON(改行区切りJSON)形式を使用して、行単位で処理するアプローチが推奨されます。
セキュリティ
外部から受け取ったJSONデータは必ずバリデーションを行い、SQLインジェクションやコードインジェクションの攻撃ベクトルにならないよう注意します。
第6章:JSON関連ツール
- JSONフォーマッター:圧縮されたJSONを人間が読みやすく整形。jsonformatter.org、jq(CLI)
- JSONバリデータ:JSONの構文エラーを検出。jsonlint.com
- JSON Schema:JSONデータの構造を定義するスキーマ言語。APIのリクエスト/レスポンス仕様書として活用
- JSON Viewer(ブラウザ拡張):ブラウザでAPIレスポンスのJSONを見やすく表示
- jq:コマンドラインでJSONを加工・フィルタリングする強力なツール
よくある質問(FAQ)
Q1: JSONは何と読みますか?
「ジェイソン」と読みます。英語圏でも同じ発音です。
Q2: JSONファイルの拡張子は?
.json です。MIMEタイプは application/json です。
Q3: JSONはプログラミング言語ですか?
いいえ。JSONはデータフォーマット(データの表現形式)であり、プログラミング言語ではありません。ロジックの記述はできず、データの構造を定義するためだけに使われます。
Q4: JSONとYAMLの違いは?
YAMLはJSONのスーパーセット(上位互換)で、コメント記述やインデントベースの記法が可能です。Kubernetes、Docker Compose、GitHub Actions等の設定ファイルで広く使われています。JSONより人間可読性が高いですが、インデントに厳格でパースが複雑です。
Q5: APIでJSONを扱うのに特別な知識は必要ですか?
基本的なキーと値のペア、配列、ネスト構造を理解すれば十分です。ほぼ全てのプログラミング言語にJSONのパース/生成ライブラリが標準搭載されています。
Q6: JSONはどこで学べますか?
MDN Web Docs、json.org(公式サイト)が信頼性の高い情報源です。実践的には、ブラウザの開発者ツールでAPIレスポンスのJSONを観察したり、PostmanでAPIリクエストを送信してJSONの構造に慣れることが効果的です。
API開発・AIエージェント構築をご支援します
renueでは、REST API設計、JSON Schemaによるデータ仕様定義、AIエージェントの構造化出力設計を支援しています。データ連携基盤の構築を、伴走型でサポートいたします。
無料相談はこちら →