Это может быть немного длинно, поэтому, пожалуйста, потерпите меня ..
Я работаю над проектом в Android.У меня есть строка JSON, которую нужно десериализовать в объекты, представляющие структуру JSON, строка JSON выглядит примерно так:
{"parents":[
{"parent":{
"id":1,
"name":"Sam",
"childs":[
{
"child":{
"id":1,
"name":"Alice",
"books":[
{
"book":{
"id":1,
"name":"Alice in Wonderland"
}
}
]
}
}
]
}
}
]}
Обратите внимание, что для массивов существуют повторяющиеся значения (т. Е. Много родительских и много дочерних)я просто поставил здесь одну строку, чтобы сделать ее короткой.
С этим я создал классы для размещения структуры:
public class Containers{
private List<Parent> parents;
//setter and getter..
}
public static class Parent extends CommonItem {
private List<Child> childs;
//setter and getter..
}
public static class Child extends CommonItem {
private List<Book> books;
//setter and getter..
}
public class CommonItem{
private int id;
private String name;
//setter and getter
}
Обратите внимание, что я создал общий класс для размещения повторяющихся атрибутов.,Ниже показано, как я их анализирую с помощью GSON:
Gson gson = new Gson();
Containers parents = gson.fromJson(jsonString, Containers.class);
После разбора (ошибки нет) я пытаюсь получить объекты.Количество объектов в списке родителей является правильным (т.е. в строке JSON есть 5 родителей, а в списке родителей 5 родительских объектов).Однако все их атрибуты отсутствуют, и дочернее дерево также отсутствует.
Я пробовал многочисленные настройки, включая удаление расширенного класса и помещение всех идентификатора и имени в соответствующие классы, но в результатевсе тот же.
Кто-нибудь может дать мне любой указатель, что, где я ошибся?
Спасибо большое!