联调时 JSON 最常出什么问题
前端 JSON.parse 失败、后端反序列化报错、字段「明明有却取不到」——多数不是业务逻辑,而是 语法、结构或转义 问题。按下面清单用 ComTools 本地工具逐步缩小范围。
排查清单(建议顺序)
1. 校验 —— 是不是合法 JSON?
2. 格式化 —— 结构长什么样?
3. 路径提取 —— 目标字段在哪?
4. 对比 —— 和上一版 / 文档样例差在哪?
5. 转义 —— 字段里的字符串是否多转义或少转义?
6. 压缩 —— 需要单行重放请求时
1. 先校验语法
打开 JSON 校验,粘贴响应体。
| 常见错误 | 处理 |
|---|---|
| 尾逗号 | 删掉最后一个 , |
| 单引号 / 未加引号的键 | 改为标准双引号 JSON |
注释、NaN、undefined |
去掉或改成合法值 |
| 半截响应 | 检查网关截断、代理改写 |
详见:JSON 校验指南。
2. 格式化后阅读
合法后用 JSON 格式化(2/4 空格或 Tab),折叠大对象,确认层级。
详见:JSON 格式化指南。
3. 用路径确认字段
响应很深时,用 JSONPath:第一行写 $.data.user.id,下面贴 JSON,直接看取值是否为 null。
详见:JSONPath 指南。
4. 对比新旧响应
接口升级后行为异常:左侧贴旧响应、右侧贴新响应,打开 JSON 对比,看字段增删与值变化。
详见:JSON 对比指南。
5. 字符串转义问题
| 现象 | 可能原因 | 工具 |
|---|---|---|
字段里是 \"hello\" 字面量 |
多转义了一层 | 反转义 |
| 拼进 JSON 后整体非法 | 内文未转义引号/换行 | 转义 |
详见:JSON 转义指南。
6. 需要单行重放
Postman / curl 要一行 body 时,用 JSON 压缩。
详见:JSON 压缩指南。
典型联调流程
复制 Response
→ 校验(红灯则修语法)
→ 格式化(看结构)
→ Path 取业务字段
→ 与文档/旧版 Compare
→ 必要时 Escape / Minify 再请求
表格类数据还可:JSON ↔ CSV 给业务核对;落库用 JSON 转 SQL;生成 DTO 用 JSON 转 C#。
工具速查
| 目的 | 入口 |
|---|---|
| 合不合法 | /json-validator |
| 好看易读 | /json-formatter |
| 取嵌套字段 | /json-path |
| 两版 Diff | /json-compare |
| 字段转义 | /json-escape |
| 压成一行 | /json-minify |
全部在浏览器本地处理,适合含 Token 的响应(仍注意公共电脑安全)。
常见问题
Q:校验通过但业务字段是 null?
A:多半是路径或版本字段改名——用 Path + Compare 确认。
Q:Content-Type 是 JSON 但 body 外面包了 HTML?
A:先看是否登录页/网关错误页;只复制真正的 JSON 再校验。
Q:数组根和对象根都正常吗?
A:都合法;注意客户端是否假设一定是对象。