{ "name": "Alice" "age": 30 "tags": [ "admin" "user" ]}{ "name": "Alice" "age": 31 "tags": [ "admin" ] "email": "a@x.com"}关于 JSON 差异比较
JSON 差异对比工具在浏览器本地对两份 JSON 文档做结构化深度比较,精确标出新增、删除和修改的字段。比较过程忽略键的排列顺序和格式差异(空格、换行、缩进),递归遍历嵌套对象和数组,对数组元素按索引逐一比对,支持忽略 null 与空字符串差异的选项。差异结果以不同颜色高亮显示,支持展开折叠查看具体变更路径。适用于接口改版前后对比、配置文件版本差异检查和 API 响应回归验证。差异结果支持导出为 JSON 格式记录并生成包含新增和删除字段统计的变更摘要,方便留存版本变更历史和提交代码审查时附带对比说明。例如对比 {"name":"A","age":1} 与 {"name":"B","age":1},会逐字段标出 name 的差异而忽略相同的 age。
使用方法
- 打开「JSON 差异比较」
- 选择源格式与目标格式
- 根据需要调整输出选项
- 点击「转换」按钮,结果实时显示
- 复制或导出结果
使用场景
- 接口回归 — 对比接口升级前后的响应,确认字段变更是否符合预期。
- 配置审计 — 比较两个环境(测试/生产)的配置 JSON,找出不一致项。
- 排查回归 bug — 对比正常和异常情况下的数据快照,快速锁定差异字段。
- 版本对照 — 查看 package.json 等配置在两个 git 版本间的实际变化。
- 数据校验 — 验证转换/处理前后的 JSON 是否只在预期字段上变化。
常见问题
会忽略键的顺序吗?
会。JSON 对象的键本就无序,本工具按键名而非位置比较,键顺序不同不会被误报为差异。
数组怎么比较?
数组按索引位置逐项比较。如果数组元素顺序变了,可能会被标记为差异,因为 JSON 数组是有序的。
能比较嵌套很深的 JSON 吗?
能。本工具递归比较任意深度的嵌套结构,并标出具体到叶子节点的差异路径。
格式不同会影响结果吗?
不会。缩进、空格等格式差异会被忽略,只比较实际的数据内容。
一份 JSON 无效怎么办?
本工具会先校验两份输入的合法性,若有语法错误会提示,需先修正才能对比。
能忽略数组元素的顺序吗?
默认按索引逐项比较,数组顺序变了会报为差异。若你的数组是无序集合(如标签列表),可考虑先排序再对比。
为什么 1 和 "1" 会被判定为差异?
JSON 中数字和字符串是两种不同的值类型:数字 1 的 keyword 类型是 number,而 "1" 是 string。本工具按类型 + 值精确比较,所以 1 与 "1"、true 与 "true"、null 与 "" 都会被视为不同。这类差异最常见于接口把数字字段返回成带引号的字符串,或后端对不同环境序列化方式不一致。若你希望忽略类型只比较字面内容,请先在一侧统一类型后再对比,或手工核对预期。