java - Gson反序列化抛出转换错误

标签 java android json serialization gson

我正在尝试使用 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/

相关文章:

java - 为每个RecyclerView项目创建DetailsActivity

android - 如何从纬度和经度获取当前位置的天气?

android - 处理后台通知

java - 获取响应 JSON 对象 webservice RESTful java

java - 通过 Web Start 执行单个 Java 应用程序时的多个安全对话框

java - java 或 C++ 中的堆管理器如何跟踪线程或进程使用的所有内存位置?

java - 匹配特定 url 的正则表达式模式

Javascript 在 WebView 中不起作用 - Android?

在 tableView 中填充多个部分和行的 JSON 响应

javascript - 如何使用 Javascript 访问本地 JSON 文件?