JSON差异比较
比较两个JSON对象并获取它们之间的差异。
JSON差异比较是什么
左右各粘一份 JSON,逐层列出两者之间的差异:新增、删除、改值、数组变化都会标出来。比对接口改版前后的响应、配置文件的两个版本时,比人眼看快得多,还支持只显示有差异的分支。
所有计算都在你的浏览器本地完成,输入的内容不会上传到服务器。
怎么用JSON差异比较
- 在第一个输入框粘贴原始 JSON
- 在第二个输入框粘贴要对比的 JSON
- 两个框都会实时校验语法,不合法时显示红字提示
- 打开 Only show differences 开关可只显示有差异的分支,隐藏相同的部分
- 两份完全相同时结果区会直接提示 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