指南

如何比较两个 JSON 并查看结构差异

将两段有效 JSON 分别放入两个输入框并执行比较,结果会说明解析后的结构是否相同,并在有差异时提供差异数量和结构差异信息。

工具 JSON 差异对比工具

先了解比较对象

当你需要核对两个 JSON 配置、接口响应或数据片段时,可以用此工具比较它们解析后的结构,而不是逐字符检查文本。它会处理嵌套对象和数组,并指出属性、值、数组长度及对应数组位置的结构差异。

比较两个 JSON 的步骤

  1. 准备两段 JSON 文本,分别放入两个输入框。两个输入都是可选的;如果暂时没有内容,也可以留空。
  2. 将需要核对的第一段 JSON 放入第一个输入框,将另一段放入第二个输入框。内容可以包含嵌套对象和数组。
  3. 执行比较。只有当两段输入都包含有效且非空白的 JSON 时,工具才会比较解析后的结构。
  4. 查看结果中的相同性判断和差异信息。若存在差异,结果还会给出差异数量;差异可能表现为对象属性新增或移除、值发生变化、数组长度不同,或对应数组位置的内容不同。
  5. 如果输入为空或只有空白字符,工具会成功返回,但会显示没有报告差异,同时指出两段输入并不相同。若非空输入无法解析为 JSON,结果会是不成功状态,不报告差异,并提供解析错误信息。

如何理解结果

先确认输入是否真的被解析成功,再阅读差异数量和差异类型。成功比较且显示两段结构相同,表示解析后的 JSON 结构一致;如果显示不相同,则应根据属性、值、数组长度或数组位置等信息定位变化。

空白输入是一个特殊情况:工具会成功处理,但不会把它当作正常的 JSON 比较,并且会指出输入并不相同。格式错误的非空文本则属于解析失败,解析错误信息可用于回到原文修正引号、逗号、括号或数据类型等 JSON 格式问题。该工具用于比较解析后的 JSON 结构,不是普通文本或排版差异比较器。

使用示例

你正在核对两个用户配置 JSON,其中一段的 name 值为 Alice,另一段的 name 值为 Bob。

将第一段 JSON 放入第一个输入框,将第二段 JSON 放入第二个输入框,然后执行比较并查看相同性判断、差异类型和差异数量。

结果会说明两段解析后的结构是否相同;由于 name 的值不同,还可能显示值变化,并在发现差异时提供差异数量。

使用限制

  • 它面向解析后的 JSON 结构比较;无效的非空 JSON 无法进入比较流程,因此不能替代普通文本或排版差异检查。

常见错误

  • 常见原因是把带有额外文字或格式错误的内容直接放入输入框,导致非空文本无法解析为 JSON。请先移除 JSON 之外的说明,并检查成对的引号、括号和逗号,再重新比较。

常见问题

两个输入框都必须填写吗?

可以。两个输入框都接受可选文本;但只有两段内容都属于有效且非空白的 JSON 时,工具才会进行结构比较。

它能找出嵌套对象和数组中的差异吗?

会。成功比较时,如果发现差异,结果会显示差异数量,并可能指出新增或移除的对象属性、变化的值、不同的数组长度,以及对应数组位置的差异。

输入不是有效 JSON 时会发生什么?

如果非空内容无法解析为 JSON,结果会是不成功状态,不报告差异,并附带解析错误信息;如果内容为空或只有空白字符,则会成功返回无报告差异,同时指出两段输入并不相同。

工具

JSON 差异对比工具