3
У меня есть эти классыНеформат в десериализации коллекции с gson 2
public class Application {
public String name;
public String ico;
public List<MenuStruct> menu =new ArrayList<MenuStruct>();
//Constructor
public Application() { }
}
public class MenuStruct {
public String id;
public String type;
public String parent;
public String name;
public String secId;
//Constructor
public MenuStruct() {}
}
Если я пытаюсь десериализации коллекцию непосредственно таким образом:
ApplicationManager apm= new ApplicationManager();
s="[ {\"name\":\"reg_salida\" , \"ico\":\"document-open-2-32x32.ico\" }]";
apm.apps=(new Gson()).fromJson(s,apm.apps.getClass());
for (Application ap:apm.apps){
System.out.println(ap.name); //gets error here
}
Я получаю java.lang.ClassCastException.
Но если я попытаюсь десериализовать свой класс приложений ApplicationManager, это не подведет.
s="{ \"apps\": [ {\"name\":\"reg_salida\" , \"ico\":\"document-open-2-32x32.ico\" }]}";
ApplicationManager apm=(new Gson()).fromJson(s,ApplicationManager.class);
for (Application ap:apm.apps){
System.out.println(ap.name); // now no errors here! and shows reg_salida
}
Является ли это ошибкой gson 2.2.4? или, может быть, я что-то делаю неправильно?
Eduard.
Спасибо, что работает отлично! –
Я рад, что смогу вам помочь. Не могли бы вы проверить мой ответ как полезный и голосующий. –
Извините, я не могу голосовать за мой низкий уровень репутации! –