我正在尝试使用 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());
想法?
最佳答案
您正在使用
new TypeToken<List<Token>>
您应该将 Gson#fromJson
的返回值分配给
List<Token>
不是
Token
哪个
this.mainScreenActivity.dataStorageManager.deviceToken
好像是。
关于java - Gson反序列化抛出转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21395699/