Список объектов Json с Play Framework - PullRequest
0 голосов
/ 17 июля 2011

Я пытаюсь запустить этот код, но получаю исключение 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.

1 Ответ

1 голос
/ 03 декабря 2011

Если вы измените параметр вашего метода на body , вы сможете прочитать всю строку JSON:

public static void updateData(String body){

Затем я использую GSON (Play! Использует ту же библиотеку) для десериализации ответа JSON, например:

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

Для меня это работает нормально, но это может быть не лучшим способом, я не уверен.

Приветствие.

EDIT: Я только что видел, что ваш ExtJS возвращает 1 объект, завернутый в массив, если вы всегда возвращаете ОДИН объект, нет необходимости в массиве, поэтому добавьте в свой код ExtJS (если вы используете ExtJS 4):

allowSingle: false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...