在 Java 中比较两个 JSON 文件的最佳方法

新手上路,请多包涵

您建议如何完成这项任务?

在我看来,挑战在于智能地呈现差异信息。在我重新发明轮子之前,是否有一种公认的方法来处理这种比较?

原文由 James Raitsev 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 926
2 个回答

我推荐 zjsonpatch 库,它根据 RFC 6902 (JSON 补丁)呈现差异信息。您可以将它与杰克逊一起使用:

 JsonNode beforeNode = jacksonObjectMapper.readTree(beforeJsonString);
JsonNode afterNode = jacksonObjectMapper.readTree(afterJsonString);
JsonNode patch = JsonDiff.asJson(beforeNode, afterNode);
String diffs = patch.toString();

这个库比 fge-json-patch (在另一个答案中提到过)更好,因为它可以检测正在从数组中插入/删除的项目。 Fge-json-patch 无法处理(如果一个项目被插入到数组的中间,它会认为该项目和之后的每个项目都发生了变化,因为它们都被移动了一个)。

原文由 pacoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题