迭代JSON数据以生成Groovy表

迭代JSON数据以生成Groovy表,json,api,groovy,Json,Api,Groovy,我已经为import.io创建了一个API包装器,它为我带回了一些数据。我希望创建一个数据表,以便在我的网站上显示足球联赛。我正在努力了解如何在Groovy中迭代数据并将其转换为表。我目前正在使用JsonSlurper将API中的数据转换成JSON。这是我的JSON { "extractorData": { "data": [ { "group": [ {

我已经为import.io创建了一个API包装器,它为我带回了一些数据。我希望创建一个数据表,以便在我的网站上显示足球联赛。我正在努力了解如何在Groovy中迭代数据并将其转换为表。我目前正在使用JsonSlurper将API中的数据转换成JSON。这是我的JSON

{
    "extractorData": {
        "data": [
            {
                "group": [
                    {
                        "Content": [
                            {
                                "text": "Clapham Junction Thursday"
                            }
                        ],
                        "Value 1": [
                            {
                                "text": "P"
                            }
                        ],
                        "Value 2": [
                            {
                                "text": "W"
                            }
                        ],
                        "Value 3": [
                            {
                                "text": "D"
                            }
                        ],
                        "Value 4": [
                            {
                                "text": "L"
                            }
                        ],
                        "Value 5": [
                            {
                                "text": "GF"
                            }
                        ],
                        "Value 6": [
                            {
                                "text": "GA"
                            }
                        ],
                        "Value 7": [
                            {
                                "text": "GD"
                            }
                        ],
                        "Value 8": [
                            {
                                "text": "PTS"
                            }
                        ]
                    },
                    {
                        "Content": [
                            {
                                "text": "Wavey Wanderers"
                            }
                        ],
                        "Link": [
                            {
                                "href": "http://london5aside.spawtz.com/SpawtzSkin/Fixtures/TeamProfile.aspx?TeamId=2865&LeagueId=28&SeasonId=61&DivisionId=1098",
                                "text": "Wavey Wanderers"
                            }
                        ],
                        "Value 1": [
                            {
                                "text": "5"
                            }
                        ],
                        "Value 2": [
                            {
                                "text": "3"
                            }
                        ],
                        "Value 3": [
                            {
                                "text": "0"
                            }
                        ],
                        "Value 4": [
                            {
                                "text": "2"
                            }
                        ],
                        "Value 5": [
                            {
                                "text": "31"
                            }
                        ],
                        "Value 6": [
                            {
                                "text": "22"
                            }
                        ],
                        "Value 7": [
                            {
                                "text": "9"
                            }
                        ],
                        "Value 8": [
                            {
                                "text": "9"
                            }
                        ]
                    },
                    {
                        "Content": [
                            {
                                "text": "The Feet of Hermes"
                            }
                        ],
                        "Link": [
                            {
                                "href": "http://london5aside.spawtz.com/SpawtzSkin/Fixtures/TeamProfile.aspx?TeamId=2206&LeagueId=28&SeasonId=61&DivisionId=1098",
                                "text": "The Feet of Hermes"
                            }
                        ],
                        "Value 1": [
                            {
                                "text": "5"
                            }
                        ],
                        "Value 2": [
                            {
                                "text": "3"
                            }
                        ],
                        "Value 3": [
                            {
                                "text": "0"
                            }
                        ],
                        "Value 4": [
                            {
                                "text": "2"
                            }
                        ],
                        "Value 5": [
                            {
                                "text": "21"
                            }
                        ],
                        "Value 6": [
                            {
                                "text": "13"
                            }
                        ],
                        "Value 7": [
                            {
                                "text": "8"
                            }
                        ],
                        "Value 8": [
                            {
                                "text": "9"
                            }
                        ]
                    },
                    {
                        "Content": [
                            {
                                "text": "Multiple Scoregasms"
                            }
                        ],
                        "Link": [
                            {
                                "href": "http://london5aside.spawtz.com/SpawtzSkin/Fixtures/TeamProfile.aspx?TeamId=959&LeagueId=28&SeasonId=61&DivisionId=1098",
                                "text": "Multiple Scoregasms"
                            }
                        ],
                        "Value 1": [
                            {
                                "text": "5"
                            }
                        ],
                        "Value 2": [
                            {
                                "text": "3"
                            }
                        ],
                        "Value 3": [
                            {
                                "text": "0"
                            }
                        ],
                        "Value 4": [
                            {
                                "text": "2"
                            }
                        ],
                        "Value 5": [
                            {
                                "text": "25"
                            }
                        ],
                        "Value 6": [
                            {
                                "text": "24"
                            }
                        ],
                        "Value 7": [
                            {
                                "text": "1"
                            }
                        ],
                        "Value 8": [
                            {
                                "text": "9"
                            }
                        ]
                    },
                    {
                        "Content": [
                            {
                                "text": "Pugh let the Cruyffs out"
                            }
                        ],
                        "Link": [
                            {
                                "href": "http://london5aside.spawtz.com/SpawtzSkin/Fixtures/TeamProfile.aspx?TeamId=2875&LeagueId=28&SeasonId=61&DivisionId=1098",
                                "text": "Pugh let the Cruyffs out"
                            }
                        ],
                        "Value 1": [
                            {
                                "text": "5"
                            }
                        ],
                        "Value 2": [
                            {
                                "text": "3"
                            }
                        ],
                        "Value 3": [
                            {
                                "text": "0"
                            }
                        ],
                        "Value 4": [
                            {
                                "text": "2"
                            }
                        ],
                        "Value 5": [
                            {
                                "text": "17"
                            }
                        ],
                        "Value 6": [
                            {
                                "text": "20"
                            }
                        ],
                        "Value 7": [
                            {
                                "text": "-3"
                            }
                        ],
                        "Value 8": [
                            {
                                "text": "9"
                            }
                        ]
                    },
                    {
                        "Content": [
                            {
                                "text": "Michu At De Gea Ba"
                            }
                        ],
                        "Link": [
                            {
                                "href": "http://london5aside.spawtz.com/SpawtzSkin/Fixtures/TeamProfile.aspx?TeamId=2656&LeagueId=28&SeasonId=61&DivisionId=1098",
                                "text": "Michu At De Gea Ba"
                            }
                        ],
                        "Value 1": [
                            {
                                "text": "5"
                            }
                        ],
                        "Value 2": [
                            {
                                "text": "2"
                            }
                        ],
                        "Value 3": [
                            {
                                "text": "0"
                            }
                        ],
                        "Value 4": [
                            {
                                "text": "3"
                            }
                        ],
                        "Value 5": [
                            {
                                "text": "20"
                            }
                        ],
                        "Value 6": [
                            {
                                "text": "20"
                            }
                        ],
                        "Value 7": [
                            {
                                "text": "0"
                            }
                        ],
                        "Value 8": [
                            {
                                "text": "6"
                            }
                        ]
                    },
                    {
                        "Content": [
                            {
                                "text": "Shire Soldiers"
                            }
                        ],
                        "Link": [
                            {
                                "href": "http://london5aside.spawtz.com/SpawtzSkin/Fixtures/TeamProfile.aspx?TeamId=1994&LeagueId=28&SeasonId=61&DivisionId=1098",
                                "text": "Shire Soldiers"
                            }
                        ],
                        "Value 1": [
                            {
                                "text": "5"
                            }
                        ],
                        "Value 2": [
                            {
                                "text": "1"
                            }
                        ],
                        "Value 3": [
                            {
                                "text": "0"
                            }
                        ],
                        "Value 4": [
                            {
                                "text": "4"
                            }
                        ],
                        "Value 5": [
                            {
                                "text": "17"
                            }
                        ],
                        "Value 6": [
                            {
                                "text": "32"
                            }
                        ],
                        "Value 7": [
                            {
                                "text": "-15"
                            }
                        ],
                        "Value 8": [
                            {
                                "text": "3"
                            }
                        ]
                    }
                ]
            }
        ],
        "resourceId": "7103552b590f38e1b6c50352145431ac",
        "url": "http://london5aside.spawtz.com/SpawtzSkin/Fixtures/Standings.aspx?LeagueId=28&SeasonId=61"
    },
    "pageData": {
        "resourceId": "7103552b590f38e1b6c50352145431ac",
        "statusCode": 200,
        "timestamp": 1485378614012
    },
    "runtimeConfigId": "cfc5c9d6-2799-4eec-a899-d18fbd53db97",
    "sequenceNumber": -1,
    "timestamp": 1485378824648,
    "url": "http://london5aside.spawtz.com/SpawtzSkin/Fixtures/Standings.aspx?LeagueId=28&SeasonId=61"
}
下面是我目前在Ratpack处理程序中执行的操作

class LeagueTableHandler extends InjectionHandler {
    void handle(Context context, ImportClient importClient) {
        def data = importClient.leagueDataExtractor()
        def jsonSlurper = new JsonSlurper().parseText(data.contentAsString)
        context.render Jackson.json(jsonSlurper)
    }
}
理想情况下,我希望它看起来像这样

在处理Json时,有人有什么建议吗

编辑

我不确定是否是JSON结构导致了我的问题,但我在测试中获得值的唯一方法就是这样做

 List<String> teamNames = []

        when:
         jsonSlurped.result.extractorData.data.group.Content.text.each { firstNested ->
            firstNested.each { secondNested ->
                secondNested.each { finalValue ->
                    teamNames.add(finalValue)
                }
            }
        }
列出团队名称=[]
什么时候:
jsonSlurped.result.extractorData.data.group.Content.text.each{firstNested->
firstNested.each{secondNested->
secondNested.each{finalValue->
teamNames.add(最终值)
}
}
}

显然,对于值1、值2等,我不想这样做,有没有更好更有效的方法来获取每一条信息?

UI组件需要什么格式?这就是驱动后端代码的原因只是一个标准的html表您正在使用groovy模板作为UI?抱歉,我使用了handlebars我在考虑可能将组数组中的每个对象映射到一个对象,将这些对象存储在列表中,然后在handlebars中迭代,但无法看到这种方法的效果