第 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 键区分大小写。常见风格:
- camelCase —
firstName(JavaScript API 常见) - snake_case —
first_name(Python/Ruby 后端常见) - kebab-case — 键中少用,因
-会被理解为减号
同一 API 内应统一一种风格。
空结构
二者都合法,含义不同:
{ "list": [] }
{ "list": {} }
[] 是空数组;{} 是空对象。除非 schema 明确允许,否则不要混用。
深度与可读性
过深嵌套(a.b.c.d.e)虽能表达数据,但降低可读性。许多团队会通过清晰键名扁平化,或对大型数组分页。阅读陌生 JSON 时,从顶层开始,逐层展开对象或数组,并留意重复模式——多数 API 载荷都是这样设计的。