Skip to content

在 JSON 中,数组(Array)对象(Object) 是两种不同的数据结构,用途和语法有明显区别。以下是它们的核心差异:


一、语法区别

特征数组(Array)对象(Object)
符号用方括号 [] 包裹用花括号 {} 包裹
元素格式由逗号分隔的 值(Value) 列表由逗号分隔的 键值对(Key-Value) 列表
示例[1, "apple", true]{"name": "John", "age": 30}

二、用途区别

1. 数组(Array)

  • 存储有序的同类数据,例如:
    json
    ["red", "green", "blue"]
  • 允许重复:同一个值可以多次出现。
  • 通过索引访问:元素通过数字下标(从 0 开始)访问,例如 array[0]

2. 对象(Object)

  • 存储无序的键值对,表示一个实体的属性,例如:
    json
    {"id": 1, "name": "Alice", "isAdmin": true}
  • 键唯一性:每个键(Key)在对象中唯一。
  • 通过键名访问:值通过键名访问,例如 object.name

三、数据访问对比

1. 数组访问示例

json
{
  "users": [
    "Alice",
    "Bob",
    "Charlie"
  ]
}
  • 获取第一个用户:data.users[0]"Alice"

2. 对象访问示例

json
{
  "user": {
    "name": "John",
    "age": 30
  }
}
  • 获取用户年龄:data.user.age30

四、嵌套使用场景

JSON 允许数组和对象互相嵌套,以表示复杂数据:

json
{
  "products": [
    {
      "id": 1,
      "name": "Phone",
      "price": 599
    },
    {
      "id": 2,
      "name": "Laptop",
      "price": 1299
    }
  ]
}
  • 解释products 是数组,每个元素是一个对象。

五、关键区别总结

特性数组(Array)对象(Object)
顺序性有序无序(键值对的顺序无关紧要)
元素类型值(Value)键值对(Key-Value)
访问方式通过索引(数字下标)通过键名(字符串或符号)
典型用途存储列表(如多个用户、商品)存储实体属性(如用户详情、配置项)
重复性允许重复值键必须唯一,值可以重复

六、性能考虑(高级)

  • 数组查找:查找元素需要遍历(时间复杂度 O(n))。
  • 对象查找:通过键名直接访问(时间复杂度 O(1)),适合快速查询。

七、代码示例(JavaScript)

javascript
// 数组操作
const colors = ["red", "green", "blue"];
console.log(colors[1]); // "green"

// 对象操作
const user = {name: "John", age: 30};
console.log(user.age); // 30

// 嵌套结构
const data = {
    employees: [
        {id: 1, name: "Alice"},
        {id: 2, name: "Bob"}
    ]
};
console.log(data.employees[0].name); // "Alice"

如果你需要处理 JSON 数据,记住:
用数组:当需要一组同类数据(如列表、集合)。
用对象:当需要描述一个实体的属性(如配置项、用户详情)。

✨ 网站运行时间: 3年11月15天 ❤️ 道阻且长,行则将至 - 微信号: heikedreamer