~/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" 是他們填進去的內容。兩種結構完成了所有的工作:

  • 一個 object 用花括號 { } 包起來。它是一捆鍵/值對——就像一條記錄。上面整個例子就是一個 object。
  • 一個 array 用方括號 [ ] 包起來。它是一個有序的值列表。在上面,"tags" 裝著一個由兩個 string 組成的 array。

注意 "profile" 是一個 object 裡面的 object。JSON 是可以巢狀的——一個值本身可以是一個 object 或一個 array,想嵌多深就嵌多深。這就是為什麼一個響應可以一次性描述一個使用者、他們的地址、以及他們最近的十個訂單。

把同一個使用者 object 畫成一棵樹,它的形狀就一目瞭然——平坦的欄位在上面,一個列表和一個巢狀的 object 從中分出枝杈:

   { } user (物件)
   ├── id ............ 42             (數字)
   ├── name .......... "Ada Lovelace" (字串)
   ├── isAdmin ....... false          (布林值)
   ├── tags .......... [ ] (陣列)
   │   ├── "beta"
   │   └── "early-access"
   └── profile ....... { } (物件)
       ├── city .......... "London"       (字串)
       └── avatarUrl ..... null           (null = 無值)

想離線閱讀?

免費下載整本書的 PDF 或 EPUB。