GWT Autobean - как обрабатывать списки?

Я пытался оценить функцию GWT Autobean для декодирования / кодирования объекта JSON в доменные объекты для вызовов REST.

Следуя примеру: http://code.google.com/p/google-web-toolkit/wiki/AutoBean

Мне удалось преобразовать отдельный объект JSON в объект домена:

AutoBean<Person> personBean = AutoBeanCodex.decode(factory, Person.class, JsonResources.INSTANCE.json().getText());

где JsonResources.INSTANCE.json() возвращает строку JSON.

Однако мне не удалось преобразовать список объектов Person из JSON.

Было бы полезно, если у кого-нибудь есть пример этого?

Спасибо!

1 ответ

Решение

Ну, единственный способ, которым я могу придумать, - это создать специальный автобин, который будет иметь List<Person> имущество. Например:

public interface Result {
    void setPersons(List<Person> persons);
    List<Person> getPersons();
}

И пример строки JSON:

{
   persons:[
      {"name":"Thomas Broyer"},
      {"name":"Colin Alworth"}
   ]
}

ОБНОВЛЕНИЕ: Обходной путь, когда входной JSON является массивом (как предложено persons[0] в комментариях). Например, JSON выглядит так:

[{"name":"Thomas Broyer"},{"name":"Colin Alworth"}]

И код разбора выглядит так:

AutoBeanCodex.decode(factory, Result.class, "{\"persons\": " + json + "}").getPersons();
Другие вопросы по тегам