首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较两个json结构并获取不匹配的更改

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

Stack Overflow用户
提问于 2018-08-28 22:39:22
回答 2查看 153关注 0票数 2

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

Json #1。

代码语言:javascript
复制
{
    "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

代码语言:javascript
复制
{
    "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上识别任何创建新的/更新/调整/删除。

代码语言:javascript
复制
"menuitem-2.3": {
   "menuitem-2.3.1": "sometext"
}

有没有Spring / Java现有的框架可以实现上述目标?

EN

回答 2

Stack Overflow用户

发布于 2018-08-28 23:11:29

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

例如,

代码语言:javascript
复制
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 -第二个字符串,可以为空

票数 0
EN

Stack Overflow用户

发布于 2018-08-28 22:57:16

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

您也可以使用java查询drill。Apache drill为此提供了JDBC驱动程序。

希望能有所帮助。:)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52060505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档