JSON 对象与数组:什么时候用哪种结构
JSON 只有两种容器,但用错的人不少。
最常见的错误,是把“一组数据”写成一个对象,键名用 id 拼出来:{"1": {...}, "2": {...}}。能跑,但没人愿意维护。
对象描述“一个东西”
花括号里是属性名和属性值,顺序不重要,靠键取值。
用户信息、配置项、接口返回的单个实体,都适合对象。比如 {"id": 1, "name": "张三", "active": true}。
判断标准很简单:这份数据是不是在描述同一个事物的多个特征。是,就用对象。
数组描述“一组东西”
方括号里是有序列表,靠下标或遍历访问。
用户列表、订单明细、标签集合,都适合数组。数组里的元素类型最好一致,全是用户对象,或者全是字符串。混着放虽然合法,但消费方要写一堆类型判断。
嵌套时的常见结构
列表接口一般长这样:{"code": 0, "data": {"list": [...], "total": 100}}。外层对象放状态和分页,列表放实际数据。
这种结构比直接返回一个裸数组好,因为以后加字段不用改根结构。很多团队踩过这个坑:接口一开始返回 [...],后来要加分页,只能改成对象,所有调用方都得改。
三个判断问题
这份数据是一个实体还是多个同类实体?
以后会不会加元信息,比如总数、游标、状态?
消费方是按名字取值,还是要遍历?
三个问题回答完,结构基本就定了。拿不准的时候,把两种写法都贴进 JSON 解析工具 看一眼,哪种更易读一目了然。