我有以下代码:
def customers = Customer.findAll()
def json = new JsonBuilder()
json {
customers.each { customer ->
id customer.id
name customer.name
address customer.address
}
}我期望结果是一个客户的json数组,但实际上它只包含一个客户。注意customers列表包含2个元素。
我看到其他一些帖子提到使用类似这样的东西:
customers.collect {
Customer c -> [id: c.id, name: c.name, address: c.address]
} 但是这种风格并不能很好地适应构建器。例如,我必须使用冒号:来赋值。
有没有不创建groovy对象的其他方法?
发布于 2014-07-16 06:16:31
不,json是一个map,您需要一个map列表。你要做的就是重新分配id,name和address字段,这样你就可以得到最后一个值。
因此,您需要像问题中那样将地图列表collect在一起。
发布于 2014-07-16 07:54:48
你需要的就是这个。
def json = new JsonBuilder( customers )如果customer中没有json中不需要的其他项。
https://stackoverflow.com/questions/24768757
复制相似问题