Я предполагаю, что фактический JSON, который вы принимаете, действителен, потому что приведенный вами пример - нет.В вашем примере JSON у вас есть "Info":[
, но нет внешнего объекта, содержащего свойство "Info", которое является обязательным.Допустимый JSON будет:
{
"Info": [
{
"Id":"",
"Name":"",
"Description":"",
"Date":"",
}
]
}
Это объект JSON, имеющий свойство «Информация», значение которого представляет собой список объектов.Этот список объектов содержит один объект, имеющий свойства «Id», «Name», «Description» и «Date», каждый из которых имеет пустые строковые значения.
Вот краткое руководство по использованию GSON для разбора фида JSON, такого как приведенный выше JSON:
Вам потребуется класс для представления элементов в списке:
public class InfoItem {
public String Id;
public String Name;
public String Description;
public String Date;
public InfoItem() {}
}
И один для представления списка элементов:
public class InfoItemList extends LinkedList<InfoItem> {
public InfoItemList() { super() };
}
Эта дополнительная сложность заключается в том, что GSON не может иначе получить тип универсальной коллекции из данных класса.
Иодин для представления общего сообщения JSON:
public class InfoMessage {
public InfoItemList Info;
public InfoMessage() {};
}
А затем просто:
gson.fromJson(jsonString, InfoMessage.getClass());
Если просто десериализовать коллекцию:
Type listType = new TypeToken<List<InfoItem>>() {}.getType();
gson.fromJson(jsonString2, listType);