我有以下代码:
def customers = Customer.findAll()
def json = new JsonBuilder()
json {
customers.each { customer ->
id customer.id
name customer.name
address customer.address
}
}
我希望结果是json客户数组,但它只包含1个客户。请注意,客户列表包含2个元素。
我看到其他一些帖子提到使用类似的东西:
customers.collect {
Customer c -> [id: c.id, name: c.name, address: c.address]
}
但是这种风格并不适合构建者。例如。我必须使用冒号:
来分配值。
是否有另一种方法而不创建groovy对象?
答案 0 :(得分:0)
不,json是一张地图,你需要一张地图清单。你正在做的每一个都是重新分配id,name和address字段,所以你只需得到最后一个值。
因此,您需要在问题中一起collect
一张地图列表。
答案 1 :(得分:0)
你需要的就是这个。
def json = new JsonBuilder( customers )
如果customer
中没有json中不需要的其他项目。