JSON 对比
两份 JSON 的结构化差异,按字段路径精确定位增、删、改。
使用说明
这个工具解决什么问题
排查接口「这次返回和上次哪里不一样」、核对配置文件改了哪个字段——文本 diff 干不了这活,肉眼更不行。这个工具把两份 JSON 解析后递归对比,每条差异一行:类型(新增/删除/修改)、字段路径、原值、新值,结论一目了然。
核心能力
路径定位:差异精确到 data.items[2].price 这样的点路径。两个杀手选项:忽略数组顺序、忽略指定键。类型敏感:字符串 "1" 与数字 1 视为变更。报告导出:Markdown 表格下载归档。
使用建议
调试接口时把两次响应分别贴进 A/B 栏;发布配置前对比生产与预发差异;时间戳类噪音字段加进忽略键,差异立刻干净。
与接口测试配合:把自动化测试失败时的期望值与实际值分别贴入两侧,差异路径可以直接定位到断言失败的字段,比读测试框架的长输出快得多。
常见问题
和普通文本 diff 有什么区别?
文本 diff 按「行」对齐,JSON 一压缩就只有一行,格式化后键顺序不同又会满屏假差异。JSON 对比按「结构」递归:解析后逐字段比较,输出的是 data.items[2].price 从 30 变 35 这样的语义差异,与缩进、键顺序、换行风格完全无关。
「忽略数组顺序」什么时候用?
接口返回的列表顺序经常不稳定(按缓存、按游标),内容其实没变。开启后,两侧元素集合相同即判定一致,顺序调整不再刷屏;集合真有差异时,剩余元素仍会按位置配对深入比较或标记增删。
「忽略指定键」典型用途是什么?
timestamp、updatedAt、sign、requestId 这类每次请求必然不同的字段,会淹没真正的业务差异。把键名列进去(逗号分隔),它们在任意层级都会被跳过,只看业务字段。
差异条数太多会卡吗?
差异条目展示上限 500 条,超出会标注截断,但统计数字始终是完整准确的。两份超大 JSON(几 MB)对比时,工具会限制输入体积并提示,避免浏览器卡顿。