JSON 差异对比
按结构比较两份 JSON —— 忽略键顺序与缩进,只报告真正的差异,每一处都带 JSONPath 定位。也可以切到文本模式做行级 diff。全部在本地计算,数据不上传。
共 5 处差异
新增 2删除 1修改 1类型变更 1
| 类型 | 路径 | 左 | 右 |
|---|---|---|---|
| 类型变更 | $.version | 2 (number) | "2" (string) |
| 新增 | $.tags[2] | — | "diff" |
| 修改 | $.config.retries | 3 | 5 |
| 删除 | $.config.debug | false | — |
| 新增 | $.config.timeout | — | 30 |
对比口径
- 对象按键比较,与书写顺序无关:
{"a":1,"b":2}和{"b":2,"a":1}视为相同。 - 数组按下标比较:在中间插入一个元素,会让它之后的元素全部报告为差异。需要按内容匹配的场景, 建议先按某个 id 排序再对比。
- 区分类型变更:
2与"2"会被单独标为「类型变更」,这类问题在接口联调时最常见。 - 文本模式使用 Myers 差分算法;超大输入会自动退化为公共前后缀裁剪以保证响应速度。