第 3 课
JSON 数据类型
字符串、数字、布尔、null,以及 JSON 刻意不支持的内容。
JSON 只支持 六种值。没有日期、函数或 undefined——只有能用文本字面量表示的内容。
1. 字符串(String)
双引号内的文本。转义包括 \"、\\、\n、\t 及 Unicode 的 \uXXXX。
"message": "Hello, \"world\"!"
2. 数字(Number)
JSON 数字为十进制;不允许 NaN 或 Infinity。可写小数与科学计数法。
"count": 42,
"ratio": 0.75,
"large": 1.2e6
3. 布尔(Boolean)
字面量 true 或 false(小写、不加引号)。
"enabled": true
4. null
字面量 null 在多数 API 中表示「无值」或「空」——不是字符串 "null"。
"middleName": null
5. 对象(Object)
键值对的集合(解析器可能保留键顺序,但语义上不应依赖顺序)。
6. 数组(Array)
有序值列表;在宿主语言中解析后通常从索引 0 开始访问。
JSON 不包含什么
| JSON 中没有 | 常见替代 |
|---|---|
undefined | 省略键或使用 null |
Date | ISO 8601 字符串:"2026-05-22T10:00:00Z" |
Map、Set | 用数组或对象表示 |
| 注释 | 外部文档或非标准的 "_comment" 字段 |
| 单引号字符串 | 使用双引号 |
理解这些限制,有助于将 JSON 映射到强类型的应用模型时避免混淆。