【じぇいそん】

JSON とは?

💡 データを「名前:値」のペアで整理する共通フォーマット
📌 このページのポイント
JSON(データ交換フォーマット) クライアント (ブラウザ) { } JSONオブジェクト "name" : "太郎" ← キー ← 値(文字列) "age" : 20 ← 値(数値) "skills" : [ "Python" , "JS" ] 配列(Array):複数の値を格納 サーバー (API) クライアントとサーバー間のデータ交換に使用 ■ キー ■ 文字列 ■ 数値 ■ 配列要素 ■ 配列 [ ] ■ オブジェクト { }
JSONデータの構造
ひよこ ひよこ

JSONってどんな見た目?

ペンギン先生 ペンギン先生

「{ "name": "太郎", "age": 25, "skills": ["Python", "JavaScript"] }」のように、波括弧の中にキーと値をコロンで区切って書くよ。配列は角括弧、入れ子も可能。XMLに比べてシンプルで見やすいから、Web APIはほぼJSONでデータをやり取りしているんだ

ひよこ ひよこ

XMLとの違いは?

ペンギン先生 ペンギン先生

XMLは「太郎」のようにタグで囲む形式で、冗長だけど厳密なスキーマ定義ができる。JSONは軽量で読みやすいけど、コメントが書けない(JSON5やJSONCでは可能)。Web APIはJSON一択、SOAPやエンタープライズ系はXMLが残っている、という棲み分けだね

ひよこ ひよこ

YAMLとの違いは?

ペンギン先生 ペンギン先生

YAMLはJSONの上位互換で、インデントで構造を表現するから人間にはさらに読みやすい。設定ファイル(docker-compose.yml、GitHub Actionsなど)ではYAMLが多い。ただしインデントミスでエラーになりやすく、APIのデータ交換には向かない。用途で使い分けるのが正解だよ

ひよこ ひよこ

JSONの注意点は?

ペンギン先生 ペンギン先生

①末尾カンマ禁止(JavaScriptでは許されるがJSONではエラー)、②キーは必ずダブルクォート(シングルクォート不可)、③コメント不可。あとBigInt(巨大な整数)はJSON標準では扱えないので注意。jqコマンドやブラウザDevToolsで整形・検索できるから活用しようね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「JSON」って出てきたら「キーと値でデータを表現する軽量フォーマット」と思えればだいたいOK!
📖 おまけ:英語の意味
「JavaScript Object Notation」 = JavaScriptオブジェクト記法
💬 JavaScriptのオブジェクト表記に由来するけど、今やどの言語でも使える「共通言語」だよ
← 用語集にもどる