是否有任何 Java 库可以区分两个 JSON 字符串并生成树结构,您可以遍历该树结构以找出添加了哪些节点、删除了哪些节点以及修改了哪些节点?
区分 JSON 并生成添加/删除/修改内容的 Java 库?
软件推荐
图书馆
爪哇
json
2021-10-16 03:23:43
2个回答
我发现了两个 Java 库,它们可以区分两个 JSON 字符串并判断添加、删除和修改的内容。这两个库都根据RFC 6902(JSON 补丁)生成输出:
zjsonpatch 更好,因为它可以检测从数组中插入/删除的项目。Fge json-patch 无法处理 - 如果将一个项目插入到数组的中间,它会认为该项目和之后的每个项目都已更改,因为它们都被移动了一个。
zjsonpatch 的示例用法:
ObjectMapper jackson = new ObjectMapper();
JsonNode beforeNode = jackson.readTree(beforeString);
JsonNode afterNode = jackson.readTree(afterString);
JsonNode patchNode = JsonDiff.asJson(beforeNode, afterNode);
String diff = patchNode.toString();
我做了一些研究来为自己最终确定一个差异生成库。@pacoverflow 指出的错误似乎已解决。我没有遇到这个问题。由于以下原因,我投票支持fge json-patch :
- 良好的文档支持。
- 支持序列化。
- 最严格遵循 RFC 6902 标准。zjsonpatch 的行为可能与 int 和 float 值比较不同(处理 1 和 1.0 不同)。
- 带有 zjsonpatch 的开放错误表明可能存在损坏的补丁。
其它你可能感兴趣的问题