使用 GSON 反序列化嵌套的泛型类时出现异常行为
我正在编写一个类,它将连接到服务器,并根据一些参数检索一个json字符串,该字符串将使用GSON解析为指定的(通过泛型)类。
负责的类的精简版本如下所示:
class Executor<T> {
private Response<T> response;
public void execute() {
Type responseType = new TypeToken<Response<T>>() {}.getType();
this.response = new Gson().fromJson(json, responseType);
}
public Response<T> getResponse() { return this.response; }
}
(-变量如下所示。JSON
反序列化后存储数据的类如下所示:
class Response<T> {
private List<T> data = null;
public List<T> getData() { return this.data; }
}
数据尝试反序列化的类:
public class Language {
public String alias;
public String label;
}
运行的代码利用了上面的类:
Executor<Language> executor = new Executor<Language();
List<Language> languages = executor.execute().getResponse().getData();
System.out.println(languages.get(0).alias); // exception occurs here
这将导致以下异常
ClassCastException: com.google.gson.internal.StringMap 不能 cast to sunnerberg.skolbibliotek.book.Language
任何帮助或建议都非常感谢!