第四章

嵌套结构

理解 JSON 的嵌套对象和数组

什么是嵌套结构?

在 JSON 中,对象和数组可以相互嵌套,形成复杂的数据结构。 这是 JSON 最强大的特性之一,可以表示现实世界中的复杂关系。

嵌套示例:用户信息

{
  "users": [
    {
      "id": 1,
      "name": "张三",
      "contacts": [
        { "type": "email", "value": "[email protected]" },
        { "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,描述一个学校的结构:

  • 学校名称
  • 包含多个班级(数组)
  • 每个班级包含学生信息(对象数组)
  • 学生信息包含姓名、年龄、成绩等

🎉 基础概念完成!

你已经掌握了 JSON 的基础概念,接下来让我们在实际编程中应用这些知识。

进入实战应用 →