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