跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

巢狀結構與存取深層資料

  • JSON 可嵌套物件與陣列,需要使用 dot notation 或 bracket notation 取得深層值。
  • dot 適合已知且合法的鍵名; bracket 可用變數或處理含空白/特殊符號的鍵。

例子:GA4 事件

混合 dot 與 bracket

深層值不存在時

  • 直接存取不存在的鍵會得到 undefined;鏈接更深會拋出錯誤。
  • 安全做法:先檢查、或使用可選鏈 ?.(若環境支援)。

練習題

AI 協作:學了這個,跟 AI 怎麼配合?

真實的 API 回傳都是巢狀 JSON——物件裡有陣列、陣列裡有物件。你要能「導航」到你要的資料。

你的人類優勢:

  • 你知道你要的資料在 JSON 的哪一層(看 API 文件或用 console.log 展開)
  • 你能告訴 AI 精確的存取路徑

可以這樣跟 AI 說:

這個 JSON 結構是 { data: { orders: [{ items: [...] }] } },幫我取出所有 orders 裡每個 item 的 productName 和 price。

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
DEMO 3可以修改程式碼試玩

挑戰任務

Task 1

取出第二個商品的數量,印出「第二件數量:4」。

起始程式碼: const cart = { "items": [{ "sku": "SKU-100", "qty": 1 }, { "sku": "SKU-200", "qty": 4 }] };

Task 2

取出巢狀物件中的 transaction_id 並印出。

起始程式碼: const event = { "params": { "transaction_id": "O-001", "value": 3290 } };

Task 3

計算 items 陣列中所有商品的 qty 總和並印出。

起始程式碼: const cart = { "items": [{ "qty": 3 }, { "qty": 1 }, { "qty": 2 }] };

BackNext Lesson →