使用 Gson,我试图反序列化一个嵌套的通用类。类结构如下所示:
Wrapper 对象,已简化,但通常包含其他属性,例如,它们与服务器的 -fieldstatusMessage
一起返回:data
public class Response<T> {
private List<T> data = null;
public List<T> getData() { return this.data; }
}
简单的类,上面 -field 的预期输出data
(虽然是一个数组):
public class Language {
public String alias;
public String label;
}
用法:
Type type = new TypeToken<Response<Language>>() {}.getType();
Response<Language> response = new Gson().fromJson(json, type);
List<Language> languages = response.getData();
Language l = languages.get(0);
System.out.println(l.alias); // Error occurs here
其中json
-variable 是这样的。
但是,执行此操作时,我收到以下异常(在第 3 行,最后一个代码示例):
ClassCastException:com.google.gson.internal.StringMap 无法转换为 book.Language
仅当将数据存储getData()
到变量中(或用作变量时)时才会发生异常。
任何帮助将不胜感激。