2014-01-28 166 views
1

我試圖使用GSON庫反序列化JSON對象鑄造錯誤,一切正常了要罰款,但是這一個數據類型和類是給我的錯誤GSON反序列化拋出

E/AndroidRuntime(11573) :java.lang.ClassCastException:java.util.ArrayList中不能轉換到frameWork.DataManager.Token

樣品JSON:

[{"ID":-1,"Token":"APA91bFQdK7qVJheMBsulWBYYVAan5AwLyMT5cL_BYaoDXxlDGoxabZ0XRnn6osNtmA1KvDOFb3mHkFDpXJ_zxshFSLY0cbt0dMmSZFDCXkDKfha2M_TRMwyB86c38do5Ngje_AOHfasfasfasfafasfascascrvfbdfbdfbfsfafasfasfasfaok","OS":"Android","Application":"Merchant"}] 

類對象

public class Token { 

    public int ID; 
    public String Token; 
    public String OS; 
    public String Application; 

} 

,其中結果是JSON字符串

Gson gson = new Gson(); 

this.mainScreenActivity.dataStorageManager.deviceToken = gson.fromJson(
     result, new TypeToken<List<Token>>() { 
}.getType()); 

思想實際的代碼?

回答

0

您使用的是

new TypeToken<List<Token>> 

你應該的Gson#fromJson返回值被分配給一個

List<Token> 

不是

Token 

this.mainScreenActivity.dataStorageManager.deviceToken 

似乎是。