Как создать класс модели JSON? - PullRequest
0 голосов
/ 08 августа 2011

Я пытаюсь использовать этот учебник в моем проекте для отображения списка с массивом json:

https://bobbyprabowo.wordpress.com/2010/11/25/android-json-processing-using-gson-and-display-in-on-a-listview/

Вот LocationModel.java и LocationList.java.

Это мой json:

{
   "data":{
      "totalQuests":"11",
      "active":[
         {
            "id":"1",
            "name":"TITLENAME",
            "description":"text",
            "text_when_complete":""
         },
         {
            "id":"2",
            "name":"TITELNAME2",
            "description":"Text2",
            "text_when_complete":""
         }
      ],
      "completed":[
         {
            "id":"3",
            "name":"TITLENAMECOMP",
            "description":"textCOMP",
            "text_when_complete":""
         }
      ]
   },
   "returnCode":0,
   "returnCodeDescription":null
}

У меня проблема с записью LocationModel для этой строки json.

Как я могу получить элементы из "active" и "complete"?

Спасибо за помощь.

РЕДАКТИРОВАТЬ:

Спасибо за хороший advy MByD;) К сожалению, я до сих пор не знаю, как его использовать.

В этом кодеЯ получаю элементы «Данные» от JSON.

Я нахожусь внутри объекта данных: {"данные": {.Далее я хочу получить элементы из "активных" ... как мне использовать ваш совет?Что дальше?Это правильно?

private List<LocationModel> data;
public List<LocationModel> getQuests() {

    return data;
}
public void setLocationList(List<LocationModel> data) {
    this.data = data;
}

Ответы [ 2 ]

4 голосов
/ 08 августа 2011

Структура классов должна быть примерно такой (в соответствии со структурой вашей строки Json), вы должны добавить геттеры и сеттеры, поскольку я их не включал:

class MyClass {
    Data data;
    Integer returnCode;
    Integer returnCodeDescription;
}

class Data {
    String totalRequests;
    Status[] active;
    Status[] completed;
}

class Status {
    String id;
    String name;
    String description;
    String textWhenCompleted;
}

Чтобы разобрать это:

MyClass class = new Gson().fromJson(yourJsonString, MyClass.class);
0 голосов
/ 23 апреля 2012

Вы можете попробовать инструмент генератора классов.

https://github.com/BrunoAlexandreMendesMartins/CleverModels

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