第 4 课

对象与数组

嵌套结构、键名约定与真实数据的建模方式。

真实的 JSON 文档通常用对象与数组组合表示实体与集合。结构清晰,API 与配置才更易使用。

对象表示一条记录

对象常描述 一个事物——用户、订单、设置块等:

{
  "userId": "u_42",
  "email": "[email protected]",
  "preferences": {
    "theme": "dark",
    "notifications": true
  }
}

嵌套对象把相关字段分组,避免扁平化成 preferences_theme 这类长键名。

数组表示列表

数组描述 有序集合:标签、订单行、搜索结果等:

{
  "tags": ["json", "api", "tutorial"],
  "items": [
    { "sku": "A1", "qty": 2 },
    { "sku": "B3", "qty": 1 }
  ]
}

键名风格

JSON 键区分大小写。常见风格:

  • camelCasefirstName(JavaScript API 常见)
  • snake_casefirst_name(Python/Ruby 后端常见)
  • kebab-case — 键中少用,因 - 会被理解为减号

同一 API 内应统一一种风格。

空结构

二者都合法,含义不同:

{ "list": [] }
{ "list": {} }

[] 是空数组;{} 是空对象。除非 schema 明确允许,否则不要混用。

深度与可读性

过深嵌套(a.b.c.d.e)虽能表达数据,但降低可读性。许多团队会通过清晰键名扁平化,或对大型数组分页。阅读陌生 JSON 时,从顶层开始,逐层展开对象或数组,并留意重复模式——多数 API 载荷都是这样设计的。

想动手练习时,可使用 DevCove 相关工具——可选,不属于本课正文。

打开相关工具

返回课程概览