1

GroovyでJSONBuilderを使用してJSON配列をネストする方法はありますか?もっと明確に言えば、私は次のようなものをレンダリングする必要があるGrailsアプリケーションを持っています:

{
    "event": {
        "type": "1.0",
        "templates": [
            {
                "template":{
                    "window": {
                        "type1": "id-1",
                        "type2": "id-2"
                    },
                    "object": {
                        "id-1": {
                            "type": "classA",
                            "others": [
                                {
                                    "var": "thing1",
                                    "mixed": "no"
                                }
                            ]
                        },
                        "id-2": {
                            "type": "classB",
                            "others": [
                                {
                                    "var": "thing1",
                                    "mixed": "yes"
                                }
                            ]
                        }
                    }
                }
            }
        ]
    }
}

render関数を使用して、またサービスでJSONBuilderを明示的に使用して、Grailsコントローラーでこれをビルドするのに問題があります。

「templates」配列内の「template」オブジェクトがレンダリングされないことを除いて、すべてが機能しているようです。レンダリングを実行しているコードは次のとおりです。

render(contentType: "text/json") {
    event {
        type = "1.0"
        templates = array {
            template = {
                window = {
                    type1 = "id-1"
                    type2 = "id-2"
                }
                object = {
                    "${ 'id-1' }" {
                        type = "classA"
                        others = array {
                            otherArr(var:"thing1", mixed:"yes")
                        }
                    }
                    "${ 'id-2' }" {
                        type = "classB"
                        others = array {
                            otherArr(var:"thing1", mixed:"yes")
                        }
                    }
                }
            }
        }
    }
}
4

1 に答える 1

1

arrayクロージャー内にレベルがありません。これを試して:

templates = array {
  item {
    template = {
      window = {
        // ...
于 2012-06-29T22:24:53.123 に答える