JSON(JavaScript Object Notation)是一种轻量级的文本数据交换格式,由 Douglas Crockford 推广,标准是 RFC 8259 和 ECMA-404。下面重点说明概念、原理与常见用途。
JSON是什么
JSON(JavaScript Object Notation)是一种轻量级的文本数据交换格式,由 Douglas Crockford 推广,标准是 RFC 8259 和 ECMA-404。它用“键: 值”对象和有序数组表示数据,语言无关,几乎所有编程语言都能直接解析。
- 对象用 { } 包裹,数组用 [ ] 包裹
- 键必须是双引号字符串
- 6 种值类型:字符串、数字、布尔、null、对象、数组
示例
输入:{"id":1,"tags":["json","格式化"],"ok":true}
解析与输出结果:
{
"id": 1,
"tags": [
"json",
"格式化"
],
"ok": true
}
说明:按 2 空格缩进,每个键值对一行。
工作原理
JSON 解析器按语法逐字符读取:遇到 { 开始对象,读取“字符串键 : 值”,用逗号分隔;遇到 [ 开始数组;字符串必须以双引号开始和结束,数字按十进制解析。整个过程只是语法转换,不执行任何代码,所以比 eval 安全。
规则说明
- 键必须是双引号包裹的字符串
- 字符串只能用双引号,不能用单引号
- 值只能是字符串、数字、true、false、null、对象、数组
- 最后一个元素后面不能有逗号
- 不支持注释、NaN、Infinity、undefined
- 数字不能有前导 0(如 01),不能用十六进制
本站的JSON格式化工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【JSON 能写注释吗?】标准 JSON 不能。需要注释可以用 JSONC、JSON5 或 YAML,但接口传输时不要带注释。
【JSON 键名必须加引号吗?】必须用双引号。
【最后一项后面能加逗号吗?】不能,这是最常见的 JSON 错误之一。
文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。