JSON 比较工具
看清两份文档之间真正改动了什么 · 在此标签页内运行,从不发送到任何地方
JSON 1
JSON 2
在两侧各粘贴一份文档——或者按下示例,用一对在几个有意思的地方存在差异的文档试试看。两侧都可以直接编辑,中间的箭头可以把一整块往任意一边复制。
JSON 比较工具 的工作原理
一个可以直接在里面编辑的 JSON 比较工具。两份文档以可编辑的编辑器并排放置,差异画在两者之间:红色标出只有 JSON 1 才有的内容,绿色标出只有 JSON 2 才有的内容,中间接缝处的箭头可以把一整块往任意一边复制,于是你可以一边读一边把两份对齐。哪一侧都不是基准。而且由于判定是结构性的而非文本性的,重新排序的键和不同的缩进从不会被算作改动。
在两侧各粘贴一份文档。比较是结构性的而非文本性的:两份文档会先被解析,因此重新排序的键、不同的缩进和行尾空白都不会被算作变更。
数组元素在存在标识时按标识配对——id、key、uuid 或 name 字段——因此在开头插入一个元素只会报告一处新增,而不是把后面的一切重写一遍。
长段完全相同的行会被折叠起来,只留下变更本身以及刚好足以定位它们的结构。Alt + ↑ 和 Alt + ↓ 可以在差异之间逐个跳转。
常见问题
JSON 差异对比和文本差异对比有什么区别?
文本差异对比比较的是字符,因此重新格式化文件或重排键的顺序会显示为数百处改动。这个工具会先解析两份文档再比较值,因此只报告那些改变了 JSON 含义的差异。
数组是怎么比较的?
在存在标识时,元素按标识配对——id、key、uuid 或 name 字段。因此在开头插入一个元素只会报告一处新增,而不是把后面每个元素都重写一遍;只是位置发生了移动的元素会被报告为移动。
键的顺序或格式会影响结果吗?
不会。键的顺序、缩进和行尾空白都会被忽略。两份仅在格式上不同的文档会被判定为相同。
这两份文档会被上传到什么地方吗?
不会。两份文档都在这个标签页内的 Web Worker 中解析和比较。什么都不会发送到服务器——当你比较的是两份生产数据时,这一点很关键。