JSON 技术分享

数据结构 · 解析陷阱 · 工程实践

JSON 是目前最常用的数据交换格式之一, 但在实际工程中,问题往往不在「会不会用」,而在「用得对不对」。

一、JSON 的本质

JSON 本质上是一种 文本格式,不是对象、不是 Map, 更不是语言原生结构。

在网络传输、日志记录、持久化存储时, 所有 JSON 最终都会退化成一段字符串。

二、常见结构示例

{
  "user_id": 12345,
  "username": "scorpio",
  "roles": ["admin", "editor"],
  "profile": {
    "email": "test@example.com",
    "active": true
  }
}

在设计 JSON 结构时,应尽量保证:

三、工程中最容易踩的坑

1. 类型不一致

同一个字段,在不同版本中返回 string / number / object,是线上 Bug 的高发区。

2. JSON 套 JSON

{
  "body": "{\"status\":0,\"msg\":\"ok\"}"
}

这种结构会导致多次反序列化,增加复杂度,也极易出错。

3. 字段含义随意变化

JSON 没有 Schema 约束时, 约定本身就是协议,随意改字段等同于破坏接口。

四、实践建议

大多数 JSON 问题,并不是技术难题, 而是设计阶段没有想清楚边界