JSON 差异对比(Diff)

并排比对两份 JSON,高亮新增与删除的内容,先格式化排序去掉噪声,让真正的字段变化无处可藏。

接口改版、配置调整、缓存与数据库不一致,排查时都要回答同一个问题:这两份 JSON 到底哪里不一样。肉眼逐行看几乎没有胜算,尤其是两边缩进不同、字段顺序还不一样的情况。这个工具把两份内容并排放在一起,变化的行用底色标出,顶部给出差异块数量。

比对在浏览器里由编辑器组件完成,两份文本都留在本机内存中,不会上传,适合处理带账号信息、内部金额的接口响应。左右两侧都可以直接编辑和粘贴,因此不需要先在其他地方整理好再复制进来。

行级比对的机制与局限

差异计算按行进行:把两侧文本逐行对齐,标出新增、删除与修改的区块,顶部的数字是变更块数量而不是改动字符数。这个机制意味着两个前提:空白与缩进差异也会被算进去,所以默认开启了忽略空格换行;同一段 JSON 只做格式化、键顺序不变时通常不会产生差异块,而键顺序一变,几乎每一行都会成为变更。理解这一点,就能明白为什么格式化与排序按钮放在比对之前。

先规范化再比对

有两个按钮专门用来消除噪声。两侧自动格式化把左右内容统一成 2 空格缩进,消除缩进与换行差异;Key排序比对把两侧所有层级的键名按同一规则重排,消除字段顺序差异。如果输入本身不是合法 JSON,这两个按钮会跳过无法解析的一侧,不会清空或破坏原有内容。推荐的顺序是先格式化、再排序,之后剩下的差异基本就是真实的数据变化。

视图切换与内容互换

视图支持并排双栏与行内两种模式:并排适合看整体改动的分布,行内适合看局部密集修改,窄屏或改动集中在几行时更清楚。左右交换按钮可以一次调换基准与目标,用来确认变化方向是不是反了。两侧都能直接编辑、导入本地 .json 或 .txt 文件,也能复制任意一侧的内容;清空会把两侧重置为空的 {},方便开始新一轮比对。

广告

常见问题

差异数量和改动行数是一回事吗?
不是。顶部统计的是变更块数量,连续变化的行会合并成一块,一段连续新增十行只算一处;改动分散在多个位置时块数更多。它适合衡量改动的分散程度,而不是精确的行数或字符数统计。
两份 JSON 内容一样却显示一堆差异?
基本可以确定是键顺序或缩进不同造成的假差异。依次使用两侧自动格式化和 Key排序比对,让两边在空白与键序上完全一致,剩下的差异才是真实变化。数组元素顺序属于数据,不会被排序按钮调整,数组顺序不同就是真实差异。
左侧内容可以直接编辑吗?
可以,左右两侧都是可编辑状态,粘贴、修改、删除都生效,改动后差异会立即重新计算。左侧通常放基准版本、右侧放新版本,交换按钮用来对调。如果只是读取结果不想误改,注意比对区没有只读开关,操作前建议先复制一份内容。
能直接比较两个文件吗?
可以。左右两栏各自的导入按钮分别加载本地文件,支持 .json 与 .txt,读取后立即参与比对,文件只在浏览器里读取,不会上传。如果文件很大,建议先用格式化与排序减少噪声,再逐块查看差异。

相关工具

广告