0

JsonBuilder に 2 つの問題があります。私は研究を通じてできる限りのことを試みました。これは私がこれを解決するのに最も近いですが、正しくありません。

  1. 日と議題の配列は機能しません - それらは非配列として出てきます。
  2. Day 2 のアジェンダ データは、何らかの理由で Day 1 のアジェンダ構造に出てきます。基礎となるデータは正しいです。

建物はこちら

def root = builder.output {
    days {
        for (Day day : model.days) {
            "$day.name" { 
                agendas {
                    for (Agenda agenda : day.agendas) {
                        "$agenda.name" {
                            name agenda.name
                        }
                    }
                }
            }
        }
    }
}

JSON

{ "output": {
    "days": {
        "Day 1": {
            "agendas": {
                "Day 2 Agenda B": {
                    "name": "Day 2 Agenda A"
                },
                "Day 2 Agenda A": {
                    "name": "Day 2 Agenda A"
                }
            }
        },
        "Day 2": {
            "agendas": {
                "Day 2 Agenda B": {
                    "name": "Day 2 Agenda A"
                },
                "Day 2 Agenda A": {
                    "name": "Day 2 Agenda A"
                }
            }
        }
    }
}}

私が求めているのは:

{ "output": {
    "days": [
        {
            "name": "Day 1",
            "agendas": [
                {
                    "name": "Day 1 Agenda A"
                },
                {
                    "name": "Day 1 Agenda B"
                }
            ]
        },
        {
            "name": "Day 2",
            "agendas": [
                {
                    "name": "Day 2 Agenda A"
                },
                {
                    "name": "Day 2 Agenda B"
                }
            ]
        }
    ]
}}
4

2 に答える 2

0

やっと手に入れました:)

    def builder = new JsonBuilder()

    builder {
        days(days.collect { day ->
            [
                name: day.name,
                agendas: day.agendas.collect { agenda ->
                    name: agenda.name   
                }
            ]
        })
    }
于 2012-10-30T18:49:33.057 に答える