Grails - 将JsonArray绑定到Collection属性

时间:2012-08-04 22:01:27

标签: json rest grails-2.0 grails-controller

我有一个REST控制器,可以用JSON格式来预测复杂的对象。

让我们说,A.class与B.class的集合有关联。

class A {
    private List<B> values;
    ...
}

class B {
    private String name;
    ... 
}

简化的控制器如下所示:

def create(){
    def jsonObject = request.JSON;
    A a = new A(jsonObject);
    ....
}

假设我将以下JSON发送给控制器:

{"values":[{"name":"test1"},{"name":"test2"}]}

在控制器中,jsonObject的“values”属性为JsonArray。我希望Grails绑定构造函数能够将JsonArray“values”绑定到List“values”,但事实并非如此。在Spring MVC中,JacksonMapper为我做了这个工作。我喜欢这样的东西。

我是否必须手动迭代JsonArray并将我自己将数组中的项目转换为域对象?

1 个答案:

答案 0 :(得分:0)

使用JsonSlurper,读取json并迭代并将其设置为域对象。