JSON 数据类型详解

JSON 一共支持 6 种数据类型,掌握它们的规则是写出合法 JSON 的基础。本文逐一讲解,并标出每个类型最容易踩的坑。

字符串(String)

字符串是 JSON 里最常见的类型,规则只有一条:必须用双引号包裹。

{ "name": "Tom", "city": "北京" }

注意:单引号、反引号都不合法。字符串里如果需要包含双引号或反斜杠,要用转义(见 JSON 转义字符详解)。

数字(Number)

数字支持整数和浮点数,可以直接写,不能加引号(加引号就变成字符串了):

{ "age": 18, "pi": 3.14, "count": -5, "big": 1.2e10 }

注意:NaN、Infinity、十六进制 0xFF 都是非法的,只能写十进制数字。

布尔值(Boolean)

只有 true 和 false 两个值,同样不能加引号:

{ "active": true, "deleted": false }

空值(null)

null 表示「空」或「无值」,和 JavaScript 一样用小写,不能写成 NULL 或 Null:

{ "middleName": null }

对象(Object)

对象是无序的键值对集合,用花括号 {} 包裹,键必须加双引号:

{ "name": "Tom", "age": 18 }

数组(Array)

数组是有序的列表,用方括号 [] 包裹,元素可以是任意类型(包括嵌套的对象和数组):

{ "tags": ["json", "前端"], "list": [1, "a", true, null, { "x": 1 }] }

一张表速记

类型 示例 易错点
字符串 "hello" 必须双引号
数字 18、3.14 不能是 NaN/十六进制
布尔 true / false 不能加引号
空值 null 只能小写
对象 {"a":1} 键要加双引号
数组 [1,2,3] 元素不能有尾逗号

不确定一段 JSON 的类型写得对不对?用 JSON 在线校验工具 粘贴后立即解析,错误会精确定位到行列。

延伸阅读