Groovy JsonBuilder不包括集合

时间:2014-07-15 21:47:00

标签: json groovy jsonbuilder

我有以下代码:

    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对象?

2 个答案:

答案 0 :(得分:0)

不,json是一张地图,你需要一张地图清单。你正在做的每一个都是重新分配id,name和address字段,所以你只需得到最后一个值。

因此,您需要在问题中一起collect一张地图列表。

答案 1 :(得分:0)

你需要的就是这个。

def json = new JsonBuilder( customers )

如果customer中没有json中不需要的其他项目。