JSON
JavaScript Object Notation
概要(サマリー)
システム同士でデータをやり取りするときによく使われる、軽くて読みやすいデータ形式のこと。
読み方は「ジェイソン」。
たとえば「名前」「年齢」「都道府県」のように、項目名と値をセットで整理して表現できる。
API でデータを取得するときや、設定ファイルを書くとき、フロントエンドとバックエンドの間で情報を受け渡すときなどに非常によく登場する。
人間にも比較的読みやすく、プログラムでも扱いやすいため、現代のWeb開発で最もよく見るデータ形式の1つである。
詳細解説
JSON(JavaScript Object Notation)とは、データを整理して表現するためのルール(フォーマット)である。
名前に JavaScript が入っているが、JavaScript 専用ではなく、さまざまな言語やサービスで広く使われている。
初心者向けには、「データを分かりやすく箱詰めして渡すための書き方」 と考えると分かりやすい。
たとえば、あるユーザーの情報を相手のシステムへ渡したいとする。
そのとき、ただ文字を並べるだけでは意味が分かりにくい。
太郎 20 東京
これでは、
- 何が名前なのか
- 何が年齢なのか
- 何が住所なのか
が分かりにくい。
そこで JSON では、項目名と値をセットにして書く。
{
"name": "太郎",
"age": 20,
"prefecture": "東京"
}
こうすると、意味がかなり分かりやすくなる。
これが JSON の基本的な考え方である。
なぜJSONが必要なのか
システム同士でデータをやり取りするとき、相手に正確に意味を伝えられる形式が必要になる。
もしルールがなければ、
- どこまでが1つのデータか
- 何が項目名で何が値か
- 複数件あるのか1件だけなのか
が分かりにくくなる。
そこで JSON のような決まった形式を使うと、
- 項目名と値の対応がはっきりする
- 複数データをまとめやすい
- プログラムが読み取りやすい
- 人間が見ても比較的分かりやすい
という利点がある。
つまり JSON は、
データを誤解なく渡しやすくするための共通ルール
なのである。
どんなイメージで考えればよいか
初心者向けには、次のようなたとえが分かりやすい。
ラベル付きの収納箱
ただ物を箱に入れるのではなく、「名前」「年齢」「住所」とラベルを付けて入れるイメージ。
何がどこに入っているかが分かりやすくなる。
伝票つきの荷物
荷物そのものだけでなく、「送り主」「宛先」「内容物」が書かれていると扱いやすい。
JSON も同じで、データに意味の札を付ける感覚である。
項目つきの申込書
値だけ並んでいるのではなく、「氏名」「電話番号」「メールアドレス」のように項目があるから意味が分かる。
JSON もその感覚に近い。
JSONの基本の形
JSON では、主に次の2つの形をよく使う。
1. オブジェクト
項目名と値のセットで表す形。
{
"name": "太郎",
"age": 20
}
2. 配列
複数のデータを並べる形。
[
"りんご",
"みかん",
"ぶどう"
]
この2つを組み合わせることで、かなり多くのデータを表現できる。
オブジェクトと配列の組み合わせ
実際の JSON では、オブジェクトと配列を組み合わせることが多い。
たとえば、複数人のユーザー一覧なら次のようになる。
[
{
"name": "太郎",
"age": 20
},
{
"name": "花子",
"age": 22
}
]
これは、
- 全体としては配列
- 中身1件1件はオブジェクト
という形である。
つまり JSON は、
1件の情報も、複数件の一覧も表現できる
柔軟な形式である。
JSONでよく使う値の種類
JSON では、たとえば次のような値を使うことが多い。
- 文字列
- 数字
- true / false
- null
- 配列
- オブジェクト
たとえば、
{
"name": "太郎",
"age": 20,
"isMember": true,
"nickname": null
}
のように表現できる。
APIでJSONがよく使われる理由
JSON は特に API で非常によく使われる。
たとえば、フロントエンドがバックエンドへ「商品一覧が欲しい」とリクエストしたとき、バックエンドは JSON 形式で結果を返すことが多い。
例:
[
{
"id": 1,
"name": "商品A",
"price": 1200
},
{
"id": 2,
"name": "商品B",
"price": 1800
}
]
こうするとフロントエンド側は、
- 商品名を表示する
- 価格を表示する
- 商品IDを使って詳細ページへ飛ばす
といった処理をしやすい。
つまり JSON は、
API時代の標準的な受け渡し形式
と言ってよい。
設定ファイルとして使われることもある
JSON は通信だけでなく、設定ファイルとして使われることもある。
たとえば、
- アプリの設定値
- テーマ設定
- メニュー構成
- 開発ツールの設定
などで使われることがある。
これは、項目名と値で整理でき、人間にも比較的読みやすいためである。
CSVとの違い
初心者が混同しやすいのが CSV との違いである。
JSON
- 項目と値の関係が分かりやすい
- 入れ子構造にできる
- 配列やオブジェクトを表現できる
- API向き
CSV
- 表形式の一覧に向いている
- シンプルで表計算ソフトと相性がよい
- 複雑な入れ子構造には向きにくい
つまり、
- JSON = 構造を持ったデータに強い
- CSV = 単純な表形式に強い
という違いで考えると分かりやすい。
Markdownとの違い
最近よく見かける記法には Markdown もある。
JSON
データを機械的に扱いやすく表現するための形式。
Markdown
文章や見出し、リストなどを、人間向けに読みやすく書くための記法。
AIにとっても読みやすく、プロンプトを書くときは Markdown が推奨される。
JSONのメリット
1. 読みやすい
機械向けの形式としては比較的人間にも見やすい。
2. 扱いやすい
多くの言語やサービスが対応している。
3. 構造を表現しやすい
配列やオブジェクトを組み合わせられる。
4. APIと相性がよい
現代のWeb開発で非常によく使われる。
JSONの注意点
1. 記号ミスに弱い
カンマ、波かっこ、角かっこ、ダブルクォートなどが崩れるとエラーになりやすい。
2. コメントを書けないことが多い
標準のJSONではコメントを入れられない。設定ファイルの中にはJSON風でもコメントを書けるものがあるが、通常のJSONとは別物として考えた方がよい。
3. 書式に厳密さが必要
ちょっとした抜けや余計なカンマで読めなくなることがある。
4. 文字列はダブルクォートで囲む
JSONでは、キーや文字列の値は基本的にダブルクォート " で囲む必要がある。
5. 手書きだと地味にミスしやすい
特にネストが深いと見づらくなる。
AI時代にJSONが重要な理由
AI時代では、JSON はますます重要になっている。
理由は、AIやAPI、ツール連携でデータを受け渡す場面が非常に多いからである。
たとえば、
- APIレスポンスを読む
- AIへ構造化データを渡す
- AIの出力をJSON形式で受け取る
- 設定ファイルを扱う
- ログやイベントデータを保存する
などで JSON が登場する。
そのため、JSON が読めるだけでも、
- APIドキュメントが理解しやすい
- AIが返した構造化データを扱いやすい
- 開発中のデバッグがしやすい
といった大きな利点がある。
よくある勘違い
JSON = JavaScript専用?
名前に JavaScript が入っているが、実際にはさまざまな言語やサービスで広く使われている。
JSONはプログラミング言語?
違う。
JSON はデータを書くための形式であり、言語そのものではない。
JSONはAPIでしか使わない?
APIで非常によく使うが、設定ファイルやデータ保存などでも使われることがある。
配列とオブジェクトはどちらか一方しか使えない?
そんなことはない。
実際には両方を組み合わせて使うことが多い。
JSONは人間向けの文章形式?
人にも比較的読みやすいが、本質的にはデータを機械的にやり取りしやすくするための形式である。
より詳しくAIに聞いてみよう
- JSONとは何かを、中学生でもわかるように説明してください。
- JSONのオブジェクトと配列の違いを、具体例つきで教えてください。
- APIでJSONがよく使われる理由を説明してください。
- CSVとJSONの違いを、初心者向けに整理してください。
- JSONの書き方でミスしやすいポイントを教えてください。