JSON
你可能会说
AI 返回给我的那种大括号套小括号的数据,怎么读、怎么写?
JSON 是软件之间传递成组信息时常用的一种文本写法。例如天气服务可以把城市、温度和天气状态按 JSON 格式发给页面,页面再把对应内容显示出来。它能把文字、数字、列表和真假状态放在一起;收到后仍要检查内容是否齐全、是否正确。
先知道
也常被叫作JSON 数据JavaScript Object Notation
什么时候用
什么时候不用
- 键名忘加双引号:JS 行,JSON 不行{ name: "小林" }键名缺少双引号,无法按 JSON 解析
- 最后一项后面多一个逗号:解析直接报错[ "a", "b", ]JSON 不允许最后一项后保留尾随逗号
- 用单引号包字符串:JSON 只认双引号{ 'name': '小林' }JSON 的键和字符串必须使用双引号
- 按 JavaScript 对象的写法加入注释:标准 JSON 不支持注释{ // 注释 "a": 1 }JSON 不支持注释
组成结构 · Anatomy
{
"tags": ["通用", "表单"]
}常见变体 · Variants
对象Object
{ "name": "按钮", "price": 0 }
花括号包键值对,描述一个东西
数组Array
[ "通用", "表单", "反馈" ]
方括号包列表,顺序有意义
嵌套Nested
{ "user": { "roles": […] } }
对象套数组,真实数据都这样
典型使用场景
Network 面板看返回
HeadersPreviewResponse
▾ data: {…}
▾ list: [3]
▾ 0: {name: "按钮 Button", price: 0}
▾ 1: {name: "输入框 Input", price: 0}
▸ 2: {…}
total: 42
▾ list: [3]
▾ 0: {name: "按钮 Button", price: 0}
▾ 1: {name: "输入框 Input", price: 0}
▸ 2: {…}
total: 42
Preview 帮你把 JSON 排成可折叠的树
编辑器里的 data.json
data.json
{
"site": "Vibe 图鉴",
"stats": {
"components": 48,
"online": true
},
"tags": ["通用", "表单"]
}
JSON 校验报错
1 {
2 "name": "按钮",
3 "tags": ["通用",],
4 }
✕ 第 3 行:数组最后一项后面多了逗号
终端 jq 美化输出
$ curl -s https://api.vibeui.dev/user/1 | jq
{
"id": 1,
"name": "林小狐",
"roles": [
"admin",
"editor"
]
}
# jq 将压缩 JSON 格式化为带缩进的结构
延伸阅读 · 权威出处