在粒度级别上,JSON 由 6 种数据类型组成.
前四种数据类型(字符串、数字、布尔值和 null)可以称为简单数据类型。其他两种数据类型(对象和数组)可以称为复杂数据类型.
- 字符串
- 数字
- 布尔值
- null/空
- 对象
- 数组
让我们一一了解每种数据类型.
1. 字符串
字符串是包含在 "
和 "
(双引号)之间的零个或多个 Unicode 字符的序列。用单引号'
括起来的字符串 无效.
{
"color" : "Purple"
}
JSON 字符串可以包含以下反斜杠转义字符:
\"
– 双引号\\
– 反斜杠\/
– 正斜杠\b
– 退格键\f
– 换页\n
– 换行\r
– 回车\t
– Tab\u
– 后面跟着四个十六进制数字
2. 数字
JSON 数字遵循 JavaScript 的双精度浮点格式.
- 以 10 为底表示,没有多余的前导零 (例如67, 1, 100).
- 包括 0 到 9 之间的数字.
- 可以是负数 (例如
-10
. - 可以是分数 (例如
.5
). -
还可以有 10 的指数,以
e
或E
为前缀,并带有加号或减号,表示正或负幂. - 不支持八进制和十六进制格式.
- 值不能为 NaN(非数字)或无穷大.
{
"number_1" : 210,
"number_2" : -210,
"number_3" : 21.05,
"number_4" : 1.0E+2
}
3. 布尔值
布尔值可以是true
或 false
。布尔值不被引号括起来,并将被视为字符串值.
{
"visibility" : true
}
4. null
虽然从技术上讲不是值类型,但 null
是 JSON 中的特殊值.当没有值可以分配给某个键时,可以将其视为null
.
null
值不应被引号括起来.
{
"visibility" : true,
"popularity" : null, //empty
"id" : 210
}
5. 对象
- 插入在 {}(花括号)之间的一组无序名称/值对.
- 一个对象可以包含零个或多个名称/值对.
- 多个名称/值对由 ,(逗号)分隔.
{
"visibility" : true,
"popularity" : "immense",
"id" : 210
}
6. 数组
- 值的有序集合.
-
以
[
(左括号)开始并以]
(右括号)结束. - 它的值由
,
(逗号)分隔.
{
"ids" : ["1","2","3"]
}
//or
{
"ids" : [
{"id" : 1},
{"id" : 2},
{"id" : 3}
]
}