Java 比较两个json结构并获得不匹配的更改

Java 比较两个json结构并获得不匹配的更改,java,json,spring-boot,Java,Json,Spring Boot,嗨,我有json结构#1和#2,如下所示。我想比较和捕捉结果 Json#1 Json#2 我希望下面的JSON在JSON#2中被上移。我的目标是识别JSON#2上的任何新建/更新/调整/删除 是否有任何Spring/Java现有框架可用于实现上述功能?尝试使用Apache drill。它易于安装并支持查询JSON。然后,您可以执行减号查询并获得差值 您还可以使用java查询钻孔。ApacheDrill为此提供了JDBC驱动程序 希望有帮助。:) 尝试使用Apache drill。它易于安装并支持

嗨,我有json结构#1和#2,如下所示。我想比较和捕捉结果

Json#1

Json#2

我希望下面的JSON在JSON#2中被上移。我的目标是识别JSON#2上的任何新建/更新/调整/删除


是否有任何Spring/Java现有框架可用于实现上述功能?

尝试使用Apache drill。它易于安装并支持查询JSON。然后,您可以执行减号查询并获得差值

您还可以使用java查询钻孔。ApacheDrill为此提供了JDBC驱动程序


希望有帮助。:)

尝试使用Apache drill。它易于安装并支持查询JSON。然后,您可以执行减号查询并获得差值

您还可以使用java查询钻孔。ApacheDrill为此提供了JDBC驱动程序


希望有帮助。:)

使用org.apache.commons.lang.StringUtils中的差异。 比较两个字符串,并返回它们不同的部分。(更准确地说,返回第二个字符串的剩余部分,从它与第一个字符串不同的位置开始。)

比如说,

difference("i am a machine", "i am a robot") -> "robot".
StringUtils.difference(null, null) = null
StringUtils.difference("", "") = ""
StringUtils.difference("", "abc") = "abc"
StringUtils.difference("abc", "") = ""
StringUtils.difference("abc", "abc") = ""
StringUtils.difference("ab", "abxyz") = "xyz"
StringUtils.difference("abcde", "abxyz") = "xyz"
StringUtils.difference("abcde", "xyz") = "xyz"
参数: str1-第一个字符串,可以为空
str2-第二个字符串可能为空

使用org.apache.commons.lang.StringUtils的差异。 比较两个字符串,并返回它们不同的部分。(更准确地说,返回第二个字符串的剩余部分,从它与第一个字符串不同的位置开始。)

比如说,

difference("i am a machine", "i am a robot") -> "robot".
StringUtils.difference(null, null) = null
StringUtils.difference("", "") = ""
StringUtils.difference("", "abc") = "abc"
StringUtils.difference("abc", "") = ""
StringUtils.difference("abc", "abc") = ""
StringUtils.difference("ab", "abxyz") = "xyz"
StringUtils.difference("abcde", "abxyz") = "xyz"
StringUtils.difference("abcde", "xyz") = "xyz"
参数: str1-第一个字符串,可以为空
str2-第二个字符串可能为null

是否可以由Jackson创建一个java POJO,然后比较两个类?@dehasi是的,您查看的isdid可能会解决您的问题。我过去曾用于在XML树中查找最小的节点插入/删除/移动集(类似于JSON)。简单的方法是比较JSON的格式化文本输出。真正的“最小差异”并不像在树上听起来那么容易,当然也不像在列表(或文本行)上那么容易.UPDATE和AJUSTED之间的区别是什么?是否可以由Jackson创建一个java POJO,然后只比较两个类?@dehasi是的,您所查看的isdid可能会解决您的问题。我过去曾用于在XML树中查找最小的节点插入/删除/移动集(类似于JSON)。简单的方法是比较JSON的格式化文本输出。真正的“最小差异”并不像在树上听起来那么容易,当然也不像在列表(或文本行)上那么容易。更新和调整之间有什么区别?
"menuitem-2.3": {
   "menuitem-2.3.1": "sometext"
}
difference("i am a machine", "i am a robot") -> "robot".
StringUtils.difference(null, null) = null
StringUtils.difference("", "") = ""
StringUtils.difference("", "abc") = "abc"
StringUtils.difference("abc", "") = ""
StringUtils.difference("abc", "abc") = ""
StringUtils.difference("ab", "abxyz") = "xyz"
StringUtils.difference("abcde", "abxyz") = "xyz"
StringUtils.difference("abcde", "xyz") = "xyz"