【发布时间】:2019-02-03 05:49:43
【问题描述】:
您好,我有如下的 json 结构 #1 和 #2。我想比较和捕捉结果。
Json #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"
}
}
Json #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 #2 中的 JSON 以下已被上移。我的目标是识别 JSON#2 上的任何 CREATE NEW / UPDATE / ADJUSTED / DELETE。
"menuitem-2.3": {
"menuitem-2.3.1": "sometext"
}
是否有任何现有的 Spring / Java 框架可以实现上述?
【问题讨论】:
-
是否可以通过 Jackson 创建一个 java POJO,然后只比较 2 个类?
-
@dehasi 是的
-
你看过stackoverflow.com/questions/2253750/… 可能会解决你的问题。
-
我过去曾使用code.google.com/archive/p/java-diff-utils 来查找 XML 树中节点的最小 INSERT/DELETE/MOVE 集(类似于 JSON)。简单的方法可能是比较 JSON 的格式化文本输出。真正的“最小差异”并不像在树上听起来那么容易,当然也不像在列表(或文本行)上那么容易。
-
UPDATE 和 AJUSTED 有什么区别?
标签: java json spring-boot