第二章

JSON 对象

学习 JSON 对象的基本语法和数据类型

JSON 对象的基本结构

JSON 对象是一个无序的键值对集合。数据放在 {} 中, 每个键值对用冒号 : 分隔, 多个键值对用逗号 , 分隔。

示例
{
  "name": "张三",
  "age": 30,
  "isEmployed": true,
  "salary": null
}

JSON 支持的数据类型

字符串
"name": "张三"

必须用双引号括起来

数字
"age": 30
"price": 99.99

整数或浮点数

布尔值
"isActive": true
"isDeleted": false

true 或 false(小写)

空值
"middleName": null

表示空值(小写)

对象
"address": {
  "city": "北京",
  "street": "中关村"
}

嵌套的对象

数组
"skills": [
  "JavaScript",
  "Python"
]

有序的值列表

JSON 对象的关键规则

键必须用双引号

JSON 对象的键必须是双引号字符串,不能使用单引号或不加引号。

✅ 正确

"name": "张三"

❌ 错误

name: "张三"

键值对用冒号分隔

键和值之间用冒号 : 分隔。

"key": "value"  ✅
"key" : "value" ✅ (空格可选)

多个键值对用逗号分隔

多个键值对之间用逗号 , 分隔,最后一个键值对后面不能有逗号

✅ 正确

{"a": 1, "b": 2}

❌ 错误

{"a": 1, "b": 2,}

键名应该是唯一的

虽然 JSON 标准允许重复的键名,但大多数解析器只会保留最后一个值,建议避免使用重复的键名。

互动练习

在下方的编辑器中创建一个描述你自己的 JSON 对象,包含以下属性:

  • name(字符串):你的名字
  • age(数字):你的年龄
  • hobbies(数组):你的爱好
  • isStudent(布尔值):是否是学生

常见错误

❌ 使用单引号

{'name': '张三'}

JSON 的键和字符串值必须使用双引号,不能使用单引号。

❌ 键不加引号

{name: "张三"}

这看起来像 JavaScript 对象字面量,但在 JSON 中是无效的。

❌ 尾随逗号

{"name": "张三", "age": 30,}

JSON 不允许在最后一个属性后面添加逗号。

❌ 注释

{"name": "张三", /* 这是注释 */ "age": 30}

标准 JSON 不支持注释。

章节练习

练习:找出以下 JSON 中的错误
{
  name: "李四",
  'age': 28,
  "city": "上海",
  "email": null,
}
A. name 没有加双引号
B. age 使用了单引号
C. 最后有一个尾随逗号
D. 以上都是错误