简体   繁体   English

Gson反序列化引发转换错误

[英]Gson deserialization throws a casting error

I am trying to use the Gson library to deserialize a Json object, everything works out to be fine but this one data type and class is giving me errors 我正在尝试使用Gson库反序列化Json对象,一切正常,但是这种数据类型和类给我错误

E/AndroidRuntime(11573): java.lang.ClassCastException: java.util.ArrayList cannot be cast to frameWork.DataManager.Token E / AndroidRuntime(11573):java.lang.ClassCastException:java.util.ArrayList无法转换为frameWork.DataManager.Token

Sample Json: 示例Json:

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

Class object 类对象

public class Token {

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

}

Actual Code where result is the Json String 结果为Json字符串的实际代码

Gson gson = new Gson();

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

Thoughts? 思考?

You are using a 您正在使用

new TypeToken<List<Token>>

You should be assigning the return value of Gson#fromJson to a 您应该将Gson#fromJson的返回值分配给

List<Token>

not a 不是

Token

which 哪一个

this.mainScreenActivity.dataStorageManager.deviceToken

seems to be. 似乎是。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM