JΔ

JSON 对比

按路径对比两个 JSON 的差异

JSON 与数据
🔒 100% 本地运行 — 你的数据不会离开当前页面
由 Evan 维护•最近更新:2026年9月30日
选项模式
Original JSON

左右各贴一份 JSON,直接看差异结果;数组顺序和细粒度选项可在高级模式查看。

Updated JSON
差异结果
暂无差异
🔒 浏览器内本地处理
页面阅读模式

完整说明还包括常见问题处理、操作示例、代码片段、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 兼容性;两份输入草稿会保存在当前浏览器。

继续浏览