DataHub Tools JSON 差异对比

JSON 差异对比工具

本地优先

本地对比两个 JSON 对象,列出新增、删除和变更路径。

工具实际如何工作?

工具使用独立的 --- 或 === 行分隔两个 JSON 文档,解析后递归报告新增、删除和变化路径。数组按索引比较;结果是说明性文本,不是可执行的 JSON Patch。

  • 递归比较对象
  • 报告新增、删除和变化路径
  • 按索引比较数组值

如何使用?

  1. 依次粘贴第一个 JSON、分隔行和第二个 JSON。
  2. 运行比较并检查每一条路径。
  3. 单独复核数组插入,因为索引移动会产生大量变化。
  4. 不要把报告当作可以自动应用的补丁。

快速示例

示例输入

{"roles":["admin","editor"]}
---
{"roles":["viewer","admin","editor"]}

预期结果

按索引报告 roles[0]、roles[1] 和 roles[2] 的变化。

数组头部插入会移动所有后续索引;包含点号或方括号的键会让报告路径产生歧义。

适合哪些场景?

  • 检查小型配置变更。
  • 比较接口响应结构。
  • 检查数组顺序稳定的普通 JSON 对象。

参考标准与适用边界

RFC 6902 定义了可应用的 JSON Patch 格式。本工具只输出供人阅读的递归比较,不实现该格式。

来源核验日期:2026 年 7 月 24 日。规范与平台行为可能更新,正式使用前请复核来源。

已知限制

  • 重复对象键会在 JSON 解析时被覆盖。
  • 大整数可能在比较前失去精度。
  • 需要应用变更或按身份匹配数组时,应使用 JSON Patch 或语义 diff 算法。

FAQ

如何分隔两个输入?

在两个严格 JSON 值之间单独放一行 --- 或 ===。

数组如何比较?

按数字索引比较,不按对象身份或最长公共子序列比较。

会生成 JSON Patch 吗?

不会。输出是文本报告,不能作为 RFC 6902 操作直接应用。

大整数可能比较错误吗?

可能。超出 JavaScript 安全整数范围的值可能在比较前被舍入。