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



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

杰森#1。

{
"menu": {
"id": "file",
"popup": {
"menuitem": {
"menuitem-1": "sometext",
"menuitem-2": {
"menuitem-2.1": "sometext",
"menuitem-2.2": "sometext",
"menuitem-2.3": {
"menuitem-2.3.1": "sometext"
}
}
}
},
"value": "File"
}
}

杰森 #2

{
"menu": {
"id": "file",
"popup": {
"menuitem": {
"menuitem-2.3": {
"menuitem-2.3.1": "sometext"
}
"menuitem-1": "sometext",
"menuitem-2": {
"menuitem-2.1": "sometext",
"menuitem-2.2": "sometext"
},
}
},
"value": "File"
}
}

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

"menuitem-2.3": {
"menuitem-2.3.1": "sometext"
}

是否有任何Spring/Java现有框架可以实现上述目标?

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

还可以使用 java 查询钻取。Apache演习有一个JDBC驱动程序。

希望对您有所帮助。 :)

use difference from 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 - 第二个字符串,可以为空

相关内容

  • 没有找到相关文章

最新更新