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,
}