JSON 结构对比
比较字段和值,忽略对象字段顺序与缩进差异
0处差异
两份 JSON 数据一致,对象字段顺序与缩进不影响结果。
| 类型 | 字段路径 | 原值 | 新值 |
|---|
JSON 结构对比与文本 Diff 有什么区别?
接口返回的数据即使只是调整了缩进或对象字段顺序,文本对比也可能产生很多差异。JSON 结构对比先解析数据,再按字段和值比较,适合检查接口响应、配置变更和测试结果。新增、删除与修改会分别列出,并保留原始值和新值。
示例:字段换序不算变更,数组新增项会被标出
原始:{"name":"小林","roles":["reader"],"active":true}
修改:{"active":true,"name":"小林","roles":["reader","editor"]}
结果:新增 /roles/1,值为 "editor"
数组顺序不同会算差异吗?
会。数组按位置比较,[1,2] 与 [2,1] 含义不同;对象的字段排列顺序则不影响比较。如果数组元素需要按 id 对齐,请先在业务代码中排序,再进行对比。
字段路径里的 ~0 和 ~1 是什么?
路径采用 JSON Pointer 规则:~ 表示为 ~0,/ 表示为 ~1。例如键名 a/b 对应 /a~1b。根节点的路径显示为(根节点),下载的 JSON Patch 中根路径为空字符串。
可以比较 null、数字或整个 JSON 根节点吗?
可以。支持对象、数组、字符串、数字、布尔值与 null。数字 1 和字符串 "1" 会被视为不同。大于 JavaScript 安全整数范围的编号建议使用字符串,避免解析时丢失精度。
JSON Patch 有什么用途?
下载文件包含 RFC 6902 的 add、remove、replace 操作,描述如何从原始 JSON 变为修改后 JSON。本页只生成变更记录,不会向你的接口发送请求。两份文件各限 2 MB;较多差异时页面只展示前 500 条,下载保留全部。