什么是嵌套结构?
在 JSON 中,对象和数组可以相互嵌套,形成复杂的数据结构。 这是 JSON 最强大的特性之一,可以表示现实世界中的复杂关系。
嵌套示例:用户信息
{
"users": [
{
"id": 1,
"name": "张三",
"contacts": [
{ "type": "email", "value": "zhang@example.com" },
{ "type": "phone", "value": "13800138000" }
]
}
],
"total": 1,
"success": true
}
📦
对象嵌套对象
对象属性值是另一个对象
📋
对象嵌套数组
对象属性值是数组
🔗
数组嵌套对象
数组元素是对象
常见的嵌套模式
1. 对象嵌套对象
一个对象的属性值是另一个对象:
{
"user": {
"name": "张三",
"profile": {
"age": 30,
"city": "北京"
}
}
}
2. 对象嵌套数组
一个对象的属性值是数组:
{
"product": {
"name": "笔记本电脑",
"tags": ["电子", "办公", "电脑"],
"specifications": ["16GB内存", "512GB硬盘", "i7处理器"]
}
}
3. 数组嵌套对象
数组的元素是对象:
{
"orders": [
{ "id": 1, "total": 99.99 },
{ "id": 2, "total": 149.99 },
{ "id": 3, "total": 79.99 }
]
}
4. 多层嵌套
对象和数组的多层嵌套组合:
{
"company": {
"name": "科技公司",
"departments": [
{
"name": "研发部",
"employees": [
{ "name": "张三", "role": "工程师" },
{ "name": "李四", "role": "设计师" }
]
}
]
}
}
访问嵌套数据
访问嵌套数据时,需要逐层访问。不同语言有不同的语法:
JavaScript
// 访问嵌套属性
data.user.profile.city
// 访问数组元素
data.users[0].name
Python
# 访问嵌套属性
data['user']['profile']['city']
# 访问数组元素
data['users'][0]['name']
互动练习:复杂嵌套结构
创建一个包含多层嵌套的 JSON,描述一个学校的结构:
- 学校名称
- 包含多个班级(数组)
- 每个班级包含学生信息(对象数组)
- 学生信息包含姓名、年龄、成绩等