我尝试运行此代码但是我得到了一个NULL异常。
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上的实体列表。
答案 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