从JSON层次结构中收集属性列表的最佳方法是什么?这就是我想要做的事情:
import groovy.json.JsonSlurper
def jsontxt = '''
{
"lvl1": [
{
"lvl2": [
{
"lvl3": [
{
"a1": false,
"a2": {
"a2b1": false,
"a2b2": false
},
"a3": "wantvalue1"
},
{
"a1": false,
"a2": {
"a2b1": false,
"a2b2": false
},
"a3": "wantvalue2"
}
],
},
],
}
]
}
'''
def jsresult = new JsonSlurper().parseText(jsontxt)
def mytry = jsresult.lvl1.lvl2.lvl3.collect{it.a3} // [[[wantvalue1, wantvalue2]]]
assert ["wantvalue1","wantvalue2"] == mytry
道歉输入并不尽可能干净,但我不想失去我的处境。
我想要的是没有额外空列表的基本列表。我知道必须有一个很酷的方法来做到这一点,但我不够常规。 。 。帮助??
答案 0 :(得分:1)
非常接近。试试flatten()。
尝试jsresult.lvl1.lvl2.lvl3.collect{it.a3}.flatten()
或myTry.flatten()