JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,由 Douglas Crockford 在2001年提出并推广。它基于JavaScript对象语法,但完全独立于语言,被几乎所有编程语言支持,是现代Web API最主流的数据格式。
| 类型 | 示例 | 说明 |
|---|---|---|
| 字符串 (string) | "hello" | 双引号包裹的 Unicode 文本,特殊字符需转义 |
| 数字 (number) | 42、3.14、-1e5 | 整数或浮点数,不支持 NaN/Infinity |
| 布尔 (boolean) | true、false | 全小写,区别于 JavaScript 大写写法无关 |
| 空值 (null) | null | 表示空或缺失的值 |
| 对象 (object) | {"key": "value"} | 花括号包裹的键值对,键必须是字符串 |
| 数组 (array) | [1, "a", true] | 方括号包裹的有序值列表,元素类型可混合 |
| 错误类型 | 错误示例 | 正确写法 |
|---|---|---|
| 单引号键名 | {'name': 'Alice'} | {"name": "Alice"} |
| 尾部多余逗号 | {"a": 1, "b": 2,} | {"a": 1, "b": 2} |
| 注释 | {"a": 1 // comment} | JSON不支持注释,需删除 |
| undefined | {"a": undefined} | 使用 null 代替 |
| 非双引号字符串 | [hello, world] | ["hello", "world"] |
| 键不加引号 | {name: "Alice"} | {"name": "Alice"} |
| 转义序列 | 含义 |
|---|---|
\" | 双引号 |
\\ | 反斜杠 |
\/ | 正斜杠 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\uXXXX | Unicode 字符(4位十六进制) |
格式化(Beautify):在开发调试时使用,增加缩进和换行使结构清晰易读,便于人工检查数据结构和排查问题。
压缩(Minify):在生产环境传输时使用,移除所有空白字符以减少数据体积,降低网络传输时间。