Я пытаюсь создавать объекты с этим JSON:Json к объектам Java (Gson)
{
"data": {
"Prueba1": {
"id": 266,
"title": "Prueba1",
"name": "Prueba1",
"key": "Prueba1",
"lore": "Prueba1"
},
"Prueba2": {
"id": 111,
"title": "Prueba2",
"name": "Prueba2",
"key": "Prueba2",
"lore": "Prueba2"
}
},
"type": "prueba",
"version": "1.0"
}
Проблема в том, что Gson дает мне объект «данных», но я не могу не CONVER его к массиву объектов.
Мой фактический код:
JsonParser parser = new JsonParser();
FileReader fr = new FileReader("route to archive json");
JsonElement datos = parser.parse(fr);
JsonElement heroes = datos.getAsJsonObject().get("data");
final Gson gson = new Gson();
final Type tipoListaEmpleados = new TypeToken<List<hero>>(){}.getType();
final List<hero> hero = gson.fromJson(heroes, tipoListaEmpleados);
System.out.println(hero.get(2));
Но это бросает ошибку:
Expected BEGIN_ARRAY but was BEGIN_OBJECT at path $
Любой наконечник о проблеме будет оценена.
P.S: Я понимаю, что это дает все объекты, но я не понимаю, почему это происходит, пожалуйста, помогите!
EDIT: Я работаю с внешним API, что дает мне этот результат, поэтому я не могу изменить ответ остального, мне нужно преобразовать в объекты без добавления []
edit2: внешнего вида класса Hero как один POJO:
public class hero
{
public int id;
public String title;
public String name;
public String key;
public String lore;
//constructor getters and setters
}
Почему вы не '[' и '] ', если это упоминание быть массив объектов? Это выглядит как карта для меня. –
Это объект с объектами, это невозможно! –
Внешний элемент в вашем примере JSON - это объект с '{}'. Но вы пытаетесь десериализовать «Список», который ожидает, что внешний элемент будет массивом с '[]'. Вот почему вы получаете сообщение об ошибке. –
nickb