跳到主要内容
← 返回

JSON Diff 对比工具 - 在线 JSON 数据比较

数据
本地运行 · 不上传

在线 JSON 数据差异对比工具:可视化比较两段 JSON,高亮显示新增、删除、修改的字段,支持数组对比。

结果有帮助吗?

本地工具可在 DevTools → Network 搜索输入内容,通常不会出现在请求中。

使用指南

两份 JSON 配置「看着一样但行为不同」时,需要的是结构化比对而不是肉眼找不同。本工具按字段路径逐项比较:标出新增、删除与值变更,实时输出差异清单——排查接口响应变化、比对环境配置最合适。

1. 比对两份 JSON

  1. 旧配置粘左框,新配置粘右框,差异按字段路径实时列出。
  2. 读法:added 是右边多出的字段,removed 是左边独有的,路径(如 config.timeout)后的「旧值 → 新值」是修改项。
  3. 两侧语法错误会单独提示——先保证都是合法 JSON,比对才有意义。

2. 和文本 diff 的分工

  • JSON 结构化比对忽略键序与缩进:{"a":1,"b":2} 和格式化成多行的同一份数据是「无差异」——这正是它优于 text-diff 的地方。
  • 反过来,你关心的是「格式」差异(缩进风格、字段顺序)时,用文本 diff;关心「数据」差异时用本工具。
  • 数组默认按整值比较:元素顺序变化会被视为修改;对顺序无关的数组(标签、权限列表)勾选「忽略数组顺序」按内容多集匹配。

3. 降噪对比与 JSON Patch 导出

  • 忽略字段:填 updatedAt, traceId 这类每次必变的元字段,比对时任意层级跳过,差异清单只剩信号。
  • 数组对齐键:对象数组乱序时填业务键(如 id),同键行报字段级差异(users[id=7].name),比整行增删精确得多。
  • 复制 JSON Patch:一键导出 RFC 6902 操作序列,可直接喂给 fast-json-patch 回放;注意「忽略数组顺序」模式下路径无下标语义,patch 不可用。
  • 「忽略数组顺序」的剩余元素配对是 O(n²) 贪心,上千元素的乱序数组请配合数组对齐键使用。

4. 四种 diff 粒度怎么选

JSON 对比有四个粒度层次:文本级(按行 diff 原始字符串)适合看格式变动;键级(按 key path 对比)适合接口响应回归;语义级(数字容差、数组视为集合)适合浮点与乱序数组;结构级(schema 形状对比)适合「字段增删」审计。本工具按键级对齐——这是联调排错的主流需求:两个版本的响应到底哪个字段变了。数组对齐策略是键级对比的最大变量:按索引逐位比(严格但受顺序影响)还是按业务键对齐(如 id 字段)结果可能完全不同,对比前先确认数组是否有序。

5. 联调排错的标准动作

  1. 把测试环境与生产环境的同一接口响应分别保存为两个 JSON 文件。
  2. 用本工具对比,直接跳到首个差异路径——比肉眼翻几千行快两个数量级。
  3. 对差异字段追溯:是数据问题(脏数据)还是代码问题(序列化逻辑变更)。
  4. 修复后重放对比,确认差异收敛为零。

6. 选项组合与验收

忽略字段、数组对齐键、忽略数组顺序三者可组合:先去掉 churn 元字段,再对对象数组设业务键,最后才考虑把无序标签数组当多重集合。导出 JSON Patch 前确认未开「忽略数组顺序」(该模式下路径无稳定下标)。两侧先各自通过语法检查,再读差异清单;修复后重放对比,确认路径收敛。

常见问题

JSON Diff 按字段路径做结构化比对,忽略键序与缩进——{"a":1,"b":2} 和格式化成多行的同一份数据是「无差异」。关心数据差异用本工具;关心缩进风格、字段顺序这类格式差异时,改用文本 diff 更合适。

旧配置粘左、新配置粘右,差异按字段路径实时列出:added 是右边多出的字段,removed 是左边独有的,路径(如 config.timeout)后的「旧值 → 新值」是修改项。嵌套对象与数组逐层递归展开;两侧语法错误会单独提示——先保证都是合法 JSON,比对才有意义。

默认按位置比较,顺序变化会报差异;对顺序无关的数组(标签、权限列表)可勾选「忽略数组顺序」按内容多集匹配。元素是带 id 的对象时,再填「数组对齐键」按业务键对齐(如 users[id=7].name),同时获得顺序无关与字段级精确差异。注意无对齐键的乱序配对是 O(n²) 贪心,上千元素的数组请配合对齐键使用。

可以。「复制 JSON Patch」一键导出 RFC 6902 操作序列(add/remove/replace),可直接被 fast-json-patch 等库回放;「忽略字段」可填 updatedAt、traceId 等每次必变的元字段,任意层级跳过。注意「忽略数组顺序」模式下路径无下标语义,patch 导出不可用。

把测试与生产环境的同一接口响应各存一份 JSON,用本工具直接跳到首个差异路径——比肉眼翻几千行快两个数量级;再对差异字段追溯是脏数据还是序列化逻辑变更,修复后重放对比,确认差异收敛为零。

哪儿也不去:比对只发生在当前标签页里,页面不发出任何携带数据的请求。

相关工具

相关文章