Десериализация JSON ответа

214
05 ноября 2018, 17:10

Пытаюсь десериализовать JSON ответ с помощью GSON через
response ResponseFio = gson.fromJson(json, response.class), выпадает ошибка:

Expected BEGIN_ARRAY but was BEGIN_OBJECT

Через JsonParser все получается, но через класс нет, подозрение на неправильный тип данных в классе

JSON:

{
"response": {
"count": 3,
"items": [
  {
    "id": 100,
    "first_name": "Иван",
    "last_name": "Иванов"
  },
  {
    "id": 101,
    "first_name": "Иван",
    "last_name": "Петров"
  },
  {
    "id": 102,
    "first_name": "Алла",
    "last_name": "Петрова"
  }
 ]
}
}

Класс response:

public class response {
List<GetFIO> response = null;
public response(){
}
public response(List<GetFIO> response){
    this.response = response;
}
public List<GetFIO> GetFriend(){
    return response;}
}

Класс GetFIO:

public class GetFIO {
int count = 0;
List<items> items = null;
public GetFIO(){
}
public GetFIO(int count, List<items> items){
    this.count = count;
    this.items = items;
}
public List<items> getItems() {
    return items;
}
}

Класс items:

public class items {
int id = 0;
String first_name = "",
        last_name = "";
public items(){
}
public items(int id, String first_name, String last_name){
    this.id = id;
    this.first_name = first_name;
    this.last_name = last_name;
}
public int getId() {
    return id;
}
public String getFirst_name() {
    return first_name;
}
public String getLast_name() {
    return last_name;
}
}
Answer 1

Попробуйте поменять тип на

GetFIO response = null;

т.е. когда вы десериализуете, то у вас "response" является объектом в json, а не массивом.

READ ALSO
Как решить эту задачу?

Как решить эту задачу?

Добрый день решил изучить алгоритмы и делаю задачи из книги , но вот с этой задачей сломал голову Условия

221
Вырезать последнюю букву из слова java

Вырезать последнюю букву из слова java

Хочу сделать игру "города" на java (человек вводит название города, а программа выдает другой, название которого начинается на последнюю букву...

190
JavaFX Изменение картинки

JavaFX Изменение картинки

Поскольку только учусь, то не совсем понимаю как работаетВообщем есть сцена которая заливается текстурой:

208
Расширенный цикл for

Расширенный цикл for

Почему board заполняется, если row — это переменная, которая только копирует значение элемента board?

225