JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,其本质上是基于键值对的结构。JSON 的数据格式有几种主要的表示方式,包括:
JSON 对象是由花括号 {}
包裹的一组键值对,键是字符串并且必须是双引号包含的字符串(不要和python字典中键是不可变类型混淆)
,值可以是字符串、数字、布尔值、数组、对象等。
格式:
{
"name": "Alice",
"age": 30,
"isStudent": false
}
JSON 数组是一个有序的值列表,使用方括号 []
包裹。数组中的元素可以是任意类型,包括对象、字符串、数字等。
格式:
[
"apple",
"banana",
"cherry"
]
字符串是由双引号包裹的 Unicode 字符串,通常表示文本数据。
格式:
"Hello, World!"
数字可以是整数或浮点数,不带引号。
格式:
42
或
3.14159
布尔值只有两个可能值:true
或 false
。
格式:
true
null
是表示空或无值的 JSON 数据类型。
格式:
null
JSON 数据的主要格式有以下几种:
{}
包裹的键值对集合。[]
包裹的有序值列表。true
或 false
。null
表示空。这些元素可以相互嵌套,形成更复杂的 JSON 结构。
在传统编程语言中(例如 Java、C 等)还有golang
,数组通常要求所有元素都必须是相同的数据类型,这种类型的数组称为 “强类型数组”。例如,一个整型数组只能包含整数值。
然而,JSON 的数组并没有这个限制。JSON 是一种数据交换格式,其设计目标是灵活和轻量化,因此允许数组中的元素是不同的数据类型。这种特性使得 JSON 数组可以包含混合类型的数据,称为 “弱类型数组”。
JSON 数组的定义
在 JSON 中,数组是一个有序的值集合,使用方括号 []
包围,并且数组中的每个元素可以是任意合法的 JSON 数据类型(如数字、字符串、对象、布尔值、null,甚至其他数组)。
例子:
[
42, // 数字
"Hello", // 字符串
true, // 布尔值
null, // 空值
{"key": "value"}, // 对象
[1, 2, 3] // 数组
]
在这个例子中,JSON 数组包含了多种类型的元素(数字、字符串、布尔值、空值、对象、数组),这在 JSON 中是完全合法的。
总结
虽然传统数组定义要求同一类型的值,但 JSON 数组是灵活的,可以包含不同类型的数据。这种设计使得 JSON 更加适合表示复杂的数据结构和进行数据交换。
JSON 键和值中的字符串必须使用双引号
['apple', 'banana', 'cherry']
思维有点定式了,因为见到的 json 对象都是{}
格式,但是实际 json 格式也可以存储1
,”1“
等值