Skip to content

JSON 语法

JSON 语法是 JavaScript 语法的子集。

JSON 基础语法

JSON 语法是 JavaScript 对象表示法语法的子集。

  1. 数据在键/值对中。
  2. 数据由逗号分隔。
  3. 大括号保存对象。
  4. 中括号保存数组。
  5. ///**/ 表示注释。
  6. 通常将数据包裹在 {} 中使用。

JSON 键/值对

JSON 数据的书写格式是:key(键): value(值)。

键/值对包括字段名称(在双引号中),后面写一个冒号,然后是值

"name" : "devcursor"
1

对应的 JavaScript 语句:

let name = 'devcursor'
1

在 JavaScript 中,键的双引号可以省略,但在 JSON 中是不可以的。

JSON 数据类型

JSON 的值可以是以下几种:

  1. 数字(整数或浮点数)。
  2. 字符串(在双引号中)。
  3. 布尔值(true 或 false)。
  4. 数组(在中括号中)。
  5. 对象(在大括号中)。
  6. null。

JSON 数字

数字可以是整数或者浮点数。

{
  "age": 30,
  "height": 175.5
}
1
2
3
4

提示

数字类型的值可以不带双引号。

最佳实践

每个键值对单独一行。

值前面带一个空格。

JSON 字符串

{
  "name": "devcursor",
}
1
2
3

JSON null

JSON 可以设置值为 null

{ "name": null, }
1

JSON 布尔值

JSON 布尔值可以是 true 或者 false

{ "flag": true, }
1

JSON 对象

JSON 对象和 JavaScript 对象一样,在大括号 {} 中书写。

JSON 对象可以包含多个键/值对。

{
  "name": "devcursor",
  "url": "www.devcursor.com"
}
1
2
3
4

对象的值可以是任意的 JSON 数据类型,也可以在对象中嵌套多个对象。

{
  "name": "devcursor", // 字符串
  "count": 100 /*数字*/,
  "url": "www.devcursor.com",
  "good": true, // 布尔值
  "yachts": null, // null,空值
  "docs": ["json", "yaml"], // 数组
  "object": {
    // 对象
    "sex": "girl",
    "features": ["漂亮", "善良"]
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13

JSON 数组

数组的值可以是任意的 JSON 数据类型,也可以在数组中嵌套多个数组。

{
  "name": ["devcursor", "good"], // 字符串数组
  "count": [100, 99, 98] /*数字数组*/,
  "good": [true, false], // 布尔值数组
  "yachts": [null, 100, "devcursor"], // 复合数据类型的数组
  "docs": [
    // 对象数组
    { "name": "json" },
    { "name": "yaml" }
  ],
  "object": [ // 嵌套数组
    [
      {
        "sex": "girl",
        "features": ["漂亮", "善良"]
      }
    ],
    [
      {
        "sex": "girl",
        "features": ["漂亮", "可爱"]
      }
    ]
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
JSON 语法 has loaded