tomai
免费 · 开发者工具

JSON 对比

两个 JSON 逐键比——新增、删除、修改一目了然

为什么文本对比对 JSON 说谎

行级对比把重排过的 JSON 报成全改,明明值一个没变;一个翻转的布尔值又淹没在红绿墙里。结构化对比先解析两边,再逐值比——格式噪音消失,留下三处真变化。

这个工具能做什么

  • 🆚 对象按键、数组按下比,递归
  • 🏷️ 每行带类型和完整 JSON 路径
  • 📊 顶部汇总计数(+2 / −1 / ~3)
  • ⚡ 边输边比,也有点按钮表意图

什么时候用它

  • 看 API 发版到底改了什么字段
  • 查测试和生产配置漂移
  • 验迁移有没有把数据转坏

隐私:两边解析对比全本地——你贴的 JSON 从不离开浏览器。

最后更新 · 2026-09-01

对比是怎么实现的

两边先解析成值,再递归 walk 产出行:缺键变新增/删除,值不等(按规范 JSON 文本比)变修改,数组按下标对齐。非法 JSON 明确报错,不伪造空对比。

为什么在这里比?

🆚

懂结构,不懂行号

对象按键、数组按下标,无限递归——重排过但值相同的文档正确报零差异。

🧩

路径可 grep

每个变化带完整 $.path.to.value 地址,贴进代码、工单、jq 查询直接用。

📋

边输边比,有意图

输入即刷新供探索,Compare 按钮表意图,非法 JSON 明确报错不装空。

常见问题

数组怎么比?

按下标:元素 3 对元素 3。重排过的数组会报修改,这是老实的——结构化对比不可能知道你只是排了个序。

能钻多深?

一钻到底,递归,每层带 $.store.book[0].title 这种完整路径——没有深度上限可撞。

格式差异算吗?

不算,这是设计:两边先解析再比,空格和键顺序永远造不出幻影差异,上报的全是真值变化。

常见问题

数组怎么比?

按下标:元素 3 对元素 3。重排过的数组会报修改,这是老实的——结构化对比不可能知道你只是排了个序。

能钻多深?

一钻到底,递归,每层带 $.store.book[0].title 这种完整路径——没有深度上限可撞。

格式差异算吗?

不算,这是设计:两边先解析再比,空格和键顺序永远造不出幻影差异,上报的全是真值变化。

相关工具

相关工具