0

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

入力が可能な限りきれいではないことをお詫びしますが、状況を失いたくありませんでした。

私が欲しいのは、追加の空のリストのない基本的なリストです。これを行うための本当にクールな方法があるに違いないことは知っていますが、私はそれを行うのに十分なグルービーではありません。. . ヘルプ??

4

1 に答える 1

1

非常に近いです。flatten()を試してください。

試してみるjsresult.lvl1.lvl2.lvl3.collect{it.a3}.flatten()myTry.flatten()

于 2013-11-05T00:43:19.943 に答える