我有一个在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
上,但我不明白为什么。
谢谢
答案 0 :(得分:1)
现在我看到我的错误是我需要遍历值(这是包含键,值的自己的映射)
这是解决方法
slurped.each{ key, value ->
value.each {k, v ->
println "${v}"
}
}