Json ответ разобрать

349
08 марта 2017, 17:56

Можно ли разобрать циклом массив объектов data. Все объекты имеют внутри одинаковую структуру. То есть использовать для разбора один класс. А не создавать для каждого объекта свой класс

Answer 1

Если я правильно понимаю, то этот ответ подходит для вас link

Вам нужно использовать итератор

Iterator<String> iter = json.keys();
while (iter.hasNext()) {
String key = iter.next();
try {
    Object value = json.get(key);
} catch (JSONException e) {
    // Something went wrong!
  }
}

В value будет находится ваш объект, который вы можете преобразовать в вашу модель с помощью JsonParser. На примере этого кода

String mJsonString = "...";
JsonParser parser = new JsonParser(); 
JsonElement mJson =  parser.parse(mJsonString);
MyDataObject object = gson.fromJson(mJson, MyDataObject.class);
Answer 2

Альтернативный метод. Можно вообще класс не создавать. Ну если надо создать, то можно просто вместо массива класть в переменные класса

//News_list - is ArrayList
                String output = null;
                output = your Json string;
                JSONObject jsonResponse = new JSONObject(output);//json string
                JSONArray movies = jsonResponse.getJSONArray(your json header);//в вашем случае data
                for (int i = 0; i < movies.length(); i++) {
                    JSONObject actor = null;
                    actor = movies.getJSONObject(i);
                    //получили объект и теперь можем делать что хотим
                    String ID = null;
                    ID = actor.getString("ID");//you json value tag
                    News_list.add(new ArrayList<String>());
                    News_list.get(PageViewActivity.News_list.size() - 1).add(ID);
                }
READ ALSO
Нужна помощь в модификации метода для слияния элементов коллекции

Нужна помощь в модификации метода для слияния элементов коллекции

У меня метод, который сливает элементы коллекции, если поля этих элементов, подходят под определенные условияИ при определенных условиях...

327
CountDownTimer потребляет много памяти

CountDownTimer потребляет много памяти

В сервисе у меня есть таймер по окончанию которой идет запрос к серверу:

323
Cлушатель для графики OnDraw

Cлушатель для графики OnDraw

Как сделать слушатель для графики OnDraw в MainActivity на нажатие?

258
Как использовать hibernate grails 3,mysql?

Как использовать hibernate grails 3,mysql?

У меня есть mysql сервер и 2 приложения: web (сайт, grails 3) и android приложениеБаза данных содержит расписание матчей

335