~/VibeHandbook
無料 PDF

04 · 03

JSON とは何か

あなたのアプリが に質問を投げると、その答えは という形式のテキストで返ってくる。これがデフォルトになったのは、人間にとって読みやすく、かつプログラムにとって扱いやすいからだ。あなたはこれを絶え間なく目にすることになるので、読めるようになっておく価値がある。

JSON はキーと値から作られている。キーは引用符に囲まれたラベルで、値はそれに紐づくデータだ。次は、ひとりのユーザーを表す実際の例である。

{
  "id": 42,
  "name": "Ada Lovelace",
  "email": "[email protected]",
  "isAdmin": false,
  "loginCount": 137,
  "tags": ["beta", "early-access"],
  "profile": {
    "city": "London",
    "avatarUrl": null
  }
}

誰かが記入したフォームのように読めばいい。"name" は項目で、"Ada Lovelace" はそこに書き込まれた内容だ。2つの構造がすべての仕事をこなす。

  • object は波括弧 { } で囲まれる。キーと値のペアの束で——ひとつのレコードのようなものだ。上の例全体がひとつの object である。
  • array は角括弧 [ ] で囲まれる。順序のついた値のリストだ。上では "tags" が2つの string からなる array を保持している。

"profile" が object の中の object になっていることに注目してほしい。JSON は入れ子になる——値そのものが object や array になり得て、必要なだけ深くできる。だからこそ、ひとつのレスポンスでユーザーと、その住所と、直近10件の注文をまとめて表現できるのだ。

同じユーザー object をツリーとして描くと、その形がひと目でわかる——上には平らな項目が並び、そこからリストひとつと入れ子の object が枝分かれしている。

   { } user (オブジェクト)
   ├── id ............ 42             (数値)
   ├── name .......... "Ada Lovelace" (文字列)
   ├── isAdmin ....... false          (真偽値)
   ├── tags .......... [ ] (配列)
   │   ├── "beta"
   │   └── "early-access"
   └── profile ....... { } (オブジェクト)
       ├── city .......... "London"       (文字列)
       └── avatarUrl ..... null           (null = 値なし)

オフラインでも読みたい?

本編まるごとを PDF または EPUB で無料ダウンロード。