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

标签 java json comparison

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

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

最佳答案

我推荐 zjsonpatch库,根据 RFC 6902 显示差异信息(JSON 补丁)。您可以将它与 Jackson 一起使用:

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 无法处理(如果一个项目被插入到数组的中间,它会认为该项目和之后的每个项目都发生了变化,因为它们都被移动了一个)。

关于java - 在 Java 中比较两个 JSON 文件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526911/

相关文章:

java - 在 mysql hibernate 中保存子实体时忽略唯一约束

java - 检查 2 个数字是否在彼此的 1% 以内

java - 使用什么数据结构或设计模式来映射定义的步骤序列

java - eclipse 警告 兼容的 JRE 可用,但已被覆盖

java - JPA 继承 IdClass

f# - F# 和 Clojure 调用重新定义函数时的差异

groovy - Groovy 中 ==~ 和 != 有什么区别?

java - Grails json 使用列表

javascript - 如何在 JavaScript 中将选项卡式树转换为 JSON?

javascript - 如何使用 JSON 文字字符串?