JSON 对比
正在准备交互工具…
JSON 对比
递归对比对象和数组,定位每一处变化。
递归比较两份 JSON 的结构和值,列出新增、删除与修改路径,适合核对接口返回或配置变化。
输入与结果示例
左:{"count":1,"remark":null}
右:{"count":"1"}
差异:count 类型改变;remark 被删除。使用范围与注意事项
- 对象键顺序不影响结果;数字 1 与字符串 "1" 视为不同。
- 数组按下标比较,尚不支持按业务 ID 匹配;插入一个元素可能产生多处差异。
- 路径采用 JSON Pointer:~ 写作 ~0,/ 写作 ~1。
常见问题
字段缺失与 null 相同吗?
不同。缺失代表属性不存在,null 是明确存在的值;比较时分别报告。
JSON 对比:读懂每一处字段变化
左侧放原数据,右侧放修改后的数据。点击示例按钮会替换两份输入,结果按 JSON Pointer 路径显示;复制或下载得到结构化差异数组。
可运行示例与预期结果
新增与删除字段
输入 A
{
"name": "示例",
"old": true
}输入 B
{
"name": "示例",
"active": true
}预期 2 处差异:删除 /old,新增 /active。
数字与字符串
输入 A
{
"count": 1
}输入 B
{
"count": "1"
}预期 /count 从数字 1 修改为字符串 "1",类型不同也算差异。
数组顺序变化
输入 A
{
"ids": [
1,
2
]
}输入 B
{
"ids": [
2,
1
]
}数组按下标比较,交换顺序会产生 2 处修改;不按业务 ID 配对。
null 与字段缺失
输入 A
{
"remark": null
}输入 B
{}预期删除 /remark:null 是明确存在的值,字段缺失则是属性不存在。
结果与错误排查
新增、删除和修改以哪一边为准?
以左侧输入 A 为原数据,右侧输入 B 为新数据。只在右侧存在是新增,只在左侧存在是删除。交换输入会反转比较方向。
对象字段顺序不同算差异吗?
不算。对象按字段比较,嵌套对象递归检查。数组按下标比较,所以在数组开头插入一个元素可能出现多处差异。
结果中的 /items/0/name 是什么?
这是 JSON Pointer 路径,表示 items 数组第一个元素的 name 字段。字段名中的 ~ 写成 ~0,/ 写成 ~1;结构化结果中的空路径表示根节点。
两个 JSON 一致,是否说明接口没有问题?
一致只表示这两份样本的结构和值相同,不代表接口满足业务合同、性能或权限要求。类型和必填规则可再用 JSON Schema 检查。