JSON Syntax
JSON 完整语法指南:对象、数组、字符串、数字与 null
JSON 是轻量级数据交换格式,核心目标是让人类容易阅读,让程序容易解析。它常用于 REST API、配置文件、日志数据和前端本地存储。
JSON 的六种值类型
标准 JSON 只有六类值:对象、数组、字符串、数字、布尔值和 null。它不支持注释、函数、日期对象、undefined、NaN 或 Infinity。
- 对象:键值对集合,使用花括号包裹,键名必须是双引号字符串。
- 数组:有序列表,使用方括号包裹,元素之间用逗号分隔。
- 字符串:必须使用双引号,内部特殊字符需要转义。
- 数字:可写整数、小数和科学计数法,但不能写十六进制或前导零。
- 布尔值:只能是小写的
true或false。 - null:表示空值,只能小写。
{
"id": 1001,
"name": "JSON 示例",
"active": true,
"score": 98.5,
"tags": ["api", "tool", "guide"],
"profile": {
"owner": "developer",
"homepage": null
}
}
对象和数组的写法
对象适合表达具名字段,数组适合表达列表。对象中的键名必须用双引号包裹,多个键值对之间使用逗号,但最后一个键值对后面不能再加逗号。
数组可以包含任意合法 JSON 值,包括对象和另一个数组。实际接口中常见的响应通常是对象包数组,例如 {"items":[...]},这样便于同时返回分页信息和状态字段。
字符串与转义
JSON 字符串必须使用双引号。字符串里如果要包含双引号、反斜杠、换行、制表符等字符,需要使用反斜杠转义。
{
"quote": "他说:\"你好\"",
"path": "C:\\Users\\demo",
"line": "第一行\n第二行"
}
如果你不确定某段文本是否已经正确转义,可以使用 JSON 格式化工具 的验证功能先检查。
JSON 与 JavaScript 对象的区别
JSON 的语法比 JavaScript 对象字面量更严格。JavaScript 可以写单引号、未加引号的键名、尾随逗号、函数或 undefined;JSON 都不允许。把 JavaScript 对象直接复制到接口文档里,往往会造成解析失败。
常用检查清单
- 键名和字符串都使用双引号。
- 最后一个数组元素或对象字段后没有逗号。
- 没有注释、undefined、NaN、Infinity 或函数。
- 括号成对闭合,嵌套层级清晰。
- 大整数 ID 如果会被 JavaScript 处理,优先使用字符串保存。