跳到主要内容

JSON 对比

两份 JSON 的结构化差异,按字段路径精确定位增、删、改。

本地计算 · 数据不出浏览器
原版 JSON(A)
0 字符1 行0 B
新版 JSON(B)
0 字符1 行0 B
差异结果
在上方左右两栏分别粘贴两份 JSON,字段级差异会实时显示在这里
0 字符1 行0 B

使用说明

这个工具解决什么问题

排查接口「这次返回和上次哪里不一样」、核对配置文件改了哪个字段——文本 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)对比时,工具会限制输入体积并提示,避免浏览器卡顿。

在线文档对比

行级与字符级双粒度对比,中文按字切分不整行全红。

文本相似度检测

余弦与句子序列双指标相似度,附共同句子清单与差异摘要。

URL 参数对比

两条链接的查询参数表格化对比:多了什么、少了什么、哪个值变了。

查看更多对比工具,或浏览全部工具。

;