一、json 数据格式

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,其本质上是基于键值对的结构。JSON 的数据格式有几种主要的表示方式,包括:

1. 对象(Object)

JSON 对象是由花括号 {} 包裹的一组键值对,键是字符串并且必须是双引号包含的字符串(不要和python字典中键是不可变类型混淆),值可以是字符串、数字、布尔值、数组、对象等。

格式:

{
  "name": "Alice",
  "age": 30,
  "isStudent": false
}

2. 数组(Array)

JSON 数组是一个有序的值列表,使用方括号 [] 包裹。数组中的元素可以是任意类型,包括对象、字符串、数字等。

格式:

[
  "apple",
  "banana",
  "cherry"
]

3. 字符串(String)

字符串是由双引号包裹的 Unicode 字符串,通常表示文本数据。

格式:

"Hello, World!"

4. 数字(Number)

数字可以是整数或浮点数,不带引号。

格式:

42

3.14159

5. 布尔值(Boolean)

布尔值只有两个可能值:truefalse

格式:

true

6. 空值(Null)

null 是表示空或无值的 JSON 数据类型。

格式:

null

总结

JSON 数据的主要格式有以下几种:

这些元素可以相互嵌套,形成更复杂的 JSON 结构。

二、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 对象都是{}格式,但是实际 json 格式也可以存储1,”1“等值


↙↙↙阅读原文可查看相关链接,并与作者交流