JSON 对比
按路径对比两个 JSON 的差异
JSON 与数据
🔒 100% 本地运行 — 你的数据不会离开当前页面由 Evan 维护•最近更新:2026年9月30日
页面阅读模式
完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。
工具说明
将两个 JSON 输入后可快速得到结构化差异结果,按路径标记新增、删除和修改项,方便你定位接口变更、配置漂移或迁移影响。适合联调前后数据核对、版本回归检查和发布风险评估。
生产可用片段
数组换位默认表现为位置差异
text
左侧:
{"a":[1,2]}
右侧:
{"a":[2,1]}
关闭忽略数组顺序:
changed $.a[0]: 1 → 2
changed $.a[1]: 2 → 1
开启忽略数组顺序:
这个标量数组样例没有差异。失败门诊(高频踩坑)
把忽略顺序当成按业务 ID 匹配
原因:该选项按 JSON.stringify 表示排序后逐位置比较,不按 id 匹配,也不完整归一化嵌套对象键顺序。路径不转义键名中的点号或方括号,值详情也会缩略。
修复:顺序有含义时使用默认位置比较。带身份字段的记录应先匹配再分别比较,处理缩略摘要前需核对完整源值。
常见问题
排版或对象键顺序会影响结果吗?
输入先按 JSON 解析,排版不参与比较;普通对象键顺序在递归比较时不构成差异。结果列出新增、删除和修改,数字精度遵循 JavaScript number。
数组如何比较?
默认按索引比较。开启“忽略数组顺序”后,先按 JSON.stringify 文本排序当前数组,再逐位置比较;它不是按业务 ID 匹配,也不是完整的嵌套对象无序集合比较,对象序列化键顺序不同仍可能影响结果。
结果能直接当 JSON Patch 执行吗?
不能。结果是可读摘要,点号和方括号路径未转义特殊键名,单项值超过80字符会缩略。工具不生成可执行补丁,也不判断 API 兼容性;两份输入草稿会保存在当前浏览器。
继续浏览