使用JSON构建器如何将Map填充到每个Object Array对象中

时间:2011-07-19 17:15:38

标签: grails groovy

给定:myList = [request:request,actions:actions]其中request是对象,action是map。 试图得到这样的东西:

{data:[
   {a:'a',b:'b',actions:[c:'c',d:'d']},..
  ]}

其中a和b是请求属性,而c和d是动作是映射条目。 使用:

render(contentType:"text/json"){
    data = array {
       myList.each { obj->
          rqst = {
             obj.request
             actions = {actions: obj.actions}
          }
       }
    }
}

显然这里的语法是错误的......但也许接近?

1 个答案:

答案 0 :(得分:0)

我认为以下内容可以实现您的目标。 PropsHolder是一个简单的内部类,有两个(a,b)属性

def request = new PropsHolder()
request.a = "a"
request.b = "b"
def actions = [c: "c", d: "d"]

def myList = [request: request, actions: actions]

render(contentType:"text/json")
{
    [data: [
    a: myList.request.a,
    b: myList.request.b,
    actions: myList.actions
    ]
    ]
}

当输出到网页时,json结果如下所示:

{"data":{"a":"a","b":"b","actions":{"c":"c","d":"d"}}}

如果您正在寻找地图或数组,我对[a,b,actions]集合并不十分肯定。从输出中得知,我选择了地图。