带有Play框架的Json实体列表

时间:2011-07-16 22:31:58

标签: extjs playframework

我尝试运行此代码但是我得到了一个N​​ULL异常。

Java代码:

public static void updateData(List<Users> users){
   for(Users u : users){ //Erros
      System.out.println(u.name); // Error
   }
}

Extjs代码:

proxy: {
    type: 'ajax',

    api: {
        update: '/Application/updateData'
    },
    reader: {
        type: 'json',
        root: 'users',
        successProperty: 'success'
    }
}    

Json Array:

[{"name":"Ed","email":"aa@aa.com"},{"name":"Ez","email":"bb@bb.com"}]

请告诉我如何将JSON数组绑定到Play Framework 1.2.2上的实体列表。

1 个答案:

答案 0 :(得分:1)

如果您将方法的参数更改为 body ,则可以读取整个JSON字符串:

public static void updateData(String body){

然后我使用GSON(Play!使用相同的lib)反序列化JSON响应,例如:

Gson gson = new Gson();
User user = gson.fromJson(body, User.class);

对我来说它运作正常,但这可能不是最好的方式,我不确定。

干杯。

编辑: 我刚看到你的ExtJS返回一个数据包裹的对象,如果你总是返回一个对象,不需要数组,所以添加到你的ExtJS代码(如果你使用ExtJS 4):

allowSingle: false