【问题标题】:Gson deserialization throws a casting errorGson 反序列化抛出转换错误
【发布时间】:2014-02-19 04:01:13
【问题描述】:

我正在尝试使用 Gson 库来反序列化一个 Json 对象,一切正常,但是这个数据类型和类给了我错误

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());

想法?

【问题讨论】:

    标签: java android json serialization gson


    【解决方案1】:

    你正在使用一个

    new TypeToken<List<Token>>
    

    您应该将Gson#fromJson 的返回值分配给一个

    List<Token>
    

    不是

    Token
    

    哪个

    this.mainScreenActivity.dataStorageManager.deviceToken
    

    似乎是。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多