JSON差异比较

比较两个JSON对象并获取它们之间的差异。

JSON差异比较是什么

左右各粘一份 JSON,逐层列出两者之间的差异:新增、删除、改值、数组变化都会标出来。比对接口改版前后的响应、配置文件的两个版本时,比人眼看快得多,还支持只显示有差异的分支。

所有计算都在你的浏览器本地完成,输入的内容不会上传到服务器。

怎么用JSON差异比较

  1. 在第一个输入框粘贴原始 JSON
  2. 在第二个输入框粘贴要对比的 JSON
  3. 两个框都会实时校验语法,不合法时显示红字提示
  4. 打开 Only show differences 开关可只显示有差异的分支,隐藏相同的部分
  5. 两份完全相同时结果区会直接提示 The provided JSONs are the same

示例

输入

左:{"a": 1, "b": 2}  右:{"a": 1, "b": 3, "c": 4}

输出

b: 2 → 3(改值)
c: 4(新增)

差异以树形列出,打开 Only show differences 后 a 这条相同的会被隐藏

常见问题

字段顺序不同算差异吗?

不算。比较的是解析后的对象,键的顺序不同不算差异。但数组元素的顺序不同是算差异的。

很大的整数会失真吗?

不会。这里走的是带 BigInt 支持的解析,超长数字不会被截断成科学计数法,比普通 JSON.parse 安全。

JSON 会上传吗?

不会。解析和比较都在浏览器本地完成,不联网。

能把差异导出成补丁吗?

不能。这一页只做可视化比对,不生成 patch 文档。要生成 patch 请用 JSON Patch 工具。

小提示

  • Only show differences 默认是关闭的,结构深的 JSON 会把整棵树展开;建议先打开这个开关再看
  • 输入走的是严格 JSON.parse(带大数支持),尾逗号、单引号这类 JSON5 写法会在校验处报红
  • 数组按下标比较:在数组中间插入一个元素,后面所有元素都会被标成「改值」,这不是语义级 diff

同类JSON 工具