加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy将两个json与未知节点名称和值进行比较

发布时间:2020-12-14 16:25:18 所属栏目:大数据 来源:网络整理
导读:我有一个休息API来测试,我必须比较两个json响应.您可以在下面找到该文件的结构.要比较的两个文件应包含相同的元素,但顺序可能不同.不幸的是,名称,类型(简单,数组)和键数(root,nodeXYZ)也是未知的. {"root": [{ "node1": "value1","node2": "value1","node3":
我有一个休息API来测试,我必须比较两个json响应.您可以在下面找到该文件的结构.要比较的两个文件应包含相同的元素,但顺序可能不同.不幸的是,名称,类型(简单,数组)和键数(root,nodeXYZ)也是未知的.

{"root": [{
   "node1": "value1","node2": "value1","node3":    [
            {
         "node311": "value311","node312": "value312"
      },{
         "node321": "value321","node322": "value322"
      }
   ],"node4":    [
            {
         "node411": "value411","node412": "value413","node413": [         {
            "node4131": "value4131","node4132": "value4131"
         }],"node414": []
      }
      {
         "node421": "value421","node422": "value422","node423": [         {
            "node4231": "value4231","node4232": "value4231"
         }],"node424": []
      }]
   "node5":    [
      {"node51": "value51"},{"node52": "value52"},]
}]}

我在中找到了一些有用的信息
Groovy – compare two JSON objects (same structure) and return ArrayList containing differences
Getting node from Json Response
Groovy : how do i search json with key’s value and find its children in groovy
但我无法将它与解决方案结合起来.
我认为解决方案可能如下所示:

take root
get root children names
check if child has children and get their names
do it to the lowest leve child

与所有名称比较应该很容易(我猜)
不幸的是,我没有设法将密钥置于root下

解决方法

只需比较啜饮的地图:

def map1 = new JsonSlurper().parseText(document1)
def map2 = new JsonSlurper().parseText(document2)

assert map1 == map2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读