我希望能就如何解决这个问题找到一些方向。我正在使用第三方API获取JSON数据。它的结构类似于:
{items: [
{attribute : Value},
{attribute : Value}]
count : value,
etc
}
items数组可以包含不同的数据,所以我有一个类:
public Items<T> {
private List<T> items;
// Others API Variables
public List<T> getItems(){
return items;
}
public void setItems(List<T> items){
this.items = items;
}
// Other Getters/Setters
}
我在调用类中尝试做的是:
public CallingClass {
public void Method(){
//Code to get reader object
Items<User> userItems = Gson().fromJson(ReaderObject, Items.class);
//Other processing code
}
}
我收到错误:
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to User.class
我正在阅读this帖子,我认为解决方案类似于我的需要,但我不知道该怎么做。我虽然有一个Items类可以传递返回的不同类型。
思考,帮助,任何事情都会有所帮助。
编辑:
好吧所以我现在觉得自己像个白痴,但有些睡眠有帮助。解决方案在我发布的链接中,我只是不需要列表。我的编码解决方案如下:public CallingClass {
public void Method(){
//Code to get reader object
Items<User> userItems = Gson().fromJson(ReaderObject, new TypeToken<Items<User>>(){}.getType());
//Other processing code
}
}
答案 0 :(得分:0)
public CallingClass {
public void Method(){
//Code to get reader object
Items<User> userItems = Gson().fromJson(ReaderObject, new TypeToken<Items<User>>(){}.getType());
//Other processing code
}
}