0

带有排序键的 JSON 差异 - 忽略键顺序

按结构而不是按文本比较两个 JSON 有效负载:完全在浏览器中查看其自己路径上每个添加、删除和更改的键。

处理中... 0%

结果

此页面打开 JSON diff 检查器,其中“比较之前对键进行排序”已打开,并加载了一个小示例:同一个人记录以其键以不同的顺序写入两次。查看结果,您将看到零差异,正如它应该的那样——重新排序键不会改变 JSON 对象的含义。

根据定义,JSON 对象是键/值对的无序集合。 {"id":1,"name":"Ada"} 和 {"name":"Ada","id":1} 描述完全相同的数据。然而,天真的比较(例如,将两个有效负载(打印精美)粘贴到基于普通行的文本差异中)将在一侧的序列化器决定以不同的顺序发出字段时将几乎每一行标记为已更改,因为文本差异只比较字符和行,而没有任何意义。

该工具通过按名称而不是按位置遍历每个对象的键来避免这个陷阱,因此键顺序实际上永远不会欺骗它 - 排序只是使这一保证可见,并为您提供一个干净的、按字母顺序排序的列表来读取差异。编辑任一文本区域并实时观看差异更新;准备好后,请在此处比较您自己的两个 JSON 文档,而不是示例。