JSON数据类型

在粒度级别上,JSON 由 6 种数据类型组成.

前四种数据类型(字符串、数字、布尔值和 null)可以称为简单数据类型。其他两种数据类型(对象和数组)可以称为复杂数据类型.

  1. 字符串
  2. 数字
  3. 布尔值
  4. null/空
  5. 对象
  6. 数组

让我们一一了解每种数据类型.

1. 字符串

字符串是包含在 ""(双引号)之间的零个或多个 Unicode 字符的序列。用单引号'括起来的字符串 无效.

{
    "color" : "Purple"
}

JSON 字符串可以包含以下反斜杠转义字符:

  • \" – 双引号
  • \\ – 反斜杠
  • \/ – 正斜杠
  • \b – 退格键
  • \f – 换页
  • \n – 换行
  • \r – 回车
  • \t – Tab
  • \u – 后面跟着四个十六进制数字

2. 数字

JSON 数字遵循 JavaScript 的双精度浮点格式.

  1. 以 10 为底表示,没有多余的前导零 (例如67, 1, 100).
  2. 包括 0 到 9 之间的数字.
  3. 可以是负数 (例如-10.
  4. 可以是分数 (例如.5).
  5. 还可以有 10 的指数,以eE为前缀,并带有加号或减号,表示正或负幂.
  6. 不支持八进制和十六进制格式.
  7. 值不能为 NaN(非数字)或无穷大.
{
	"number_1" : 210,
	"number_2" : -210,
	"number_3" : 21.05,
	"number_4" : 1.0E+2
}

3. 布尔值

布尔值可以是truefalse。布尔值不被引号括起来,并将被视为字符串值.

{
	"visibility" : true
}

4. null

虽然从技术上讲不是值类型,但 null 是 JSON 中的特殊值.当没有值可以分配给某个键时,可以将其视为null.

null 值不应被引号括起来.

{
	"visibility" : true,
	"popularity" : null, //empty
	"id" : 210
}

5. 对象

  1. 插入在 {}(花括号)之间的一组无序名称/值对.
  2. 一个对象可以包含零个或多个名称/值对.
  3. 多个名称/值对由 ,(逗号)分隔.
{
	"visibility" : true,
	"popularity" : "immense",
	"id" : 210
}

6. 数组

  1. 值的有序集合.
  2. [(左括号)开始并以 ](右括号)结束.
  3. 它的值由,(逗号)分隔.
{
	"ids" : ["1","2","3"]
}

//or

{
"ids" : [
		{"id" : 1},
		{"id" : 2},
		{"id" : 3}
	]
}