查看 Stackoverflow 问题后,我找不到任何解决此问题的解决方案。
我正在尝试使用 GSON 并实现了如下通用方法:
public <T> List<T> deserializeList(String json) {
Gson gson = new Gson();
Type type = (new TypeToken<List<T>>() {}).getType();
return gson.fromJson(json, type);
}
对此方法的调用是通过以下方式完成的:
parser.<Quote>deserializeList(result)
但是我得到的结果是这样的:
当我尝试访问对象时,出现此错误:
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to model.Quote
JSON 字符串是:
[
{
"id": 269861,
"quote": "People living deeply have no fear of death.",
"author": "Anais Nin",
"genre": "life",
"tag": null,
"createdAt": "2016-04-16T13:13:36.928Z",
"updatedAt": "2016-04-16T13:13:36.928Z"
}
]
最佳答案
我认为你可以像这样编写方法来显式提供 Type
public <T> List<T> deserializeList(String json, Type type) {
Gson gson = new Gson();
return gson.fromJson(json, type);
}
不过,传递(new TypeToken<List<Model>>() {}).getType();
看起来有点乱。
我对类型删除不太熟悉,但我敢打赌这与问题有关。
关于java.lang.ClassCastException : com. google.gson.internal.LinkedTreeMap 无法转换为模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38579491/