用groovy遍历嵌套的json

时间:2019-04-17 16:07:36

标签: groovy

我有一个在groovy中定义的json

import groovy.json.JsonSlurper

def json = '''{
    "upperlevel1": {
      "lowerlevel1": "ABC",
      "lowerlevel2": "DEF"
    },
    "upperlevel2": {
      "lowerlevel1": "HIJ",
      "lowerlevel2": "KLM"
    }
}'''

def slurped = new JsonSlurper().parseText(json)

slurped.each{ key, value ->
    key.each {k, v ->
        println "${v}"
    }
}

我希望获得以下输出:

ABC
DEF
HIJ
KLM

相反,出现以下错误:

groovy.lang.MissingMethodException: No signature of method: Script1$_run_closure1$_closure2.doCall() is applicable for argument types: (java.lang.String) values: [u]

我正在Jenkins groovy脚本工具中运行它。

我需要在这里更改什么以正确地迭代嵌套的JSON /哈希?我看到它被u粘在upperlevel1上,但我不明白为什么。

谢谢

1 个答案:

答案 0 :(得分:1)

现在我看到我的错误是我需要遍历值(这是包含键,值的自己的映射)

这是解决方法

slurped.each{ key, value ->
    value.each {k, v ->
       println "${v}"
    }
}