[英]Using a Class with Generics with GSON
我希望獲得有關如何解決此問題的指導。 我正在使用第三方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
我正在閱讀這篇文章,我認為解決方案類似於我需要的解決方案,但我不知道該由誰來解決。 我的想法是,只有一個Items類,可以將其傳遞給返回的不同Types。
思想,幫助,任何幫助都會有所幫助。
編輯:
好,所以我現在感覺像個白痴,但睡個好覺。 解決方案在我發布的鏈接中,我只是不需要列表。 我的編碼解決方案如下:
public CallingClass {
public void Method(){
//Code to get reader object
Items<User> userItems = Gson().fromJson(ReaderObject, new TypeToken<Items<User>>(){}.getType());
//Other processing code
}
}
好,所以我現在感覺像個白痴,但睡個好覺。 解決方案在我發布的鏈接中,我只是不需要列表。 我的編碼解決方案如下:
public CallingClass {
public void Method(){
//Code to get reader object
Items<User> userItems = Gson().fromJson(ReaderObject, new TypeToken<Items<User>>(){}.getType());
//Other processing code
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.