バイブコーディングの土台

Day 2データ構造 — AI入出力の正体

ネストとJSON — 入れ子の箱、AI入出力の正体

リストと辞書を入れ子にした「ネスト」と、その共通言語 JSON を、マトリョーシカでつかむ。

箱の中に箱を入れる = ネスト

ここまでで「リスト(順番の行列)」と「辞書(名札つきのまとめ)」を学びました。現実のデータは、この2つを組み合わせて「入れ子」にして表します。辞書の中の値が、また辞書だったりリストだったり——この入れ子構造を「ネスト」と呼びます。

たとえるなら

ネストはロシアの人形「マトリョーシカ」です。大きな人形を開けると中に小さな人形、それを開けるとまた中に…と入れ子になっています。データも同じで、箱(辞書やリスト)の中にまた箱が入っている、という構造をそのまま表せます。

TEXT
user = {
  "name": "田中",
  "age": 28,
  "hobbies": ["読書", "登山"],
  "address": {
    "city": "東京",
    "zip": "100-0001"
  }
}
辞書の中に、リスト(hobbies)や別の辞書(address)が入っている=ネスト。

この例では、user という辞書の中に、hobbies というリストと、address という別の辞書が入っています。「田中さんの趣味の1つ目」を取りたければ「userを開ける→hobbiesを開ける→0番目」と、マトリョーシカを順に開けるように奥へたどっていきます。深くても、やっていることは「箱を開けて中の箱を開ける」の繰り返しだけです。

この形の共通言語が JSON

この「辞書とリストの入れ子」を、文字で書き表すための世界共通のフォーマットが [[jsoclienrequest(ジェイソン)です。JSONは JavaScript Object Notation の略ですが、名前は気にしなくて大丈夫。要は「データの書き方の共通ルール」で、上のコードとほぼ同じ見た目です。人間もそこそこ読めて、機械も確実に読める——この「ちょうどいい中間」が、JSONが世界中で使われる理由です。

たとえるなら

JSONは「万国共通の宅配伝票フォーマット」です。どの国の配送業者でも読める決まった書式で荷物の中身を書くから、相手が誰でも中身が正しく伝わる。JSONも、どの言語のプログラム同士でも同じ形でデータをやりとりできる共通伝票です。

そして本題。AIやWebサービス([[apclienrequest = プログラム同士のやりとり窓口)がデータを返すとき、その大半がこのJSON形式です。あなたがAIに「商品情報を教えて」と頼んで返ってくる整った答えの裏側は、たいてい辞書とリストの入れ子=JSON。前回学んだ [[request-responsclienrequest(お願いと返事)の「返事」の中身が、まさにこの形なのです。

形を知らないと

AIの出力が呪文に見え、どこに何があるか分からず手が出せない。

TEXT
{"results":[{"title":"…","price":980}]}
// うわ、記号だらけ…読めない…

形を知っていると

「辞書の中にリスト、その中に辞書」と分解して読める。

TEXT
results はリスト(検索結果の行列)
  その0番目は辞書 { title, price }
  price を見れば値段だ、と分かる
  • ネスト = 箱(辞書・リスト)の中にまた箱が入る入れ子構造(マトリョーシカ)
  • 欲しい値は「外の箱から順に開けて奥へたどる」で取り出せる
  • JSON = 辞書とリストの入れ子を書き表す世界共通フォーマット(万国共通の伝票)
  • AI・APIの入出力の大半はこのJSON形式

カッコと区切りは大事

JSONは { } と [ ] の対応、カンマ、ダブルクォートのルールが厳密です。1つ閉じ忘れるだけで機械は読めません。AIの出力が「JSONが壊れている」系のエラーで動かないことは実際によくあります。中身より前に、まず「箱がちゃんと閉じているか」を疑うと早いです。

AIにはこう頼む

「この情報を、name と price をキーにしたJSONで返して」のように、欲しい形を指定して頼めます。さらに「入れ子が深すぎないシンプルなJSONにして」と添えると、あとで読みやすくなります。返ってきたら { } と [ ] を目で追って構造を確認しましょう。

読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。

理解度チェック

答えられれば、面接で説明できる状態に一歩近づきます。

Q1

「ネスト」を最もよく表しているたとえは?

Q2

JSONについての説明として正しいものはどれ?

Q3

JSON(と、その中のネスト)とは何か、たとえを使って、AIとの関係にも触れて説明してください。

記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。