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 = 無值)