我有一个Json,如下所示:
{
"a": [
{"name": "a"}
],
"b": [
{"name": "b"}
]
}
我使用改装转换为java对象,如下所示:
public interface TheService {
@GET("data")
Call<HashMap<String, ArrayList<User>>> getUsers();
}
工作不错。但是当我缓存json字符串并使用Gson:手动解析它时
Gson gson = new Gson();
HashMap<String, ArrayList<User>> map = gson.fromJson(jsonString, HashMap.class);
它抛出错误:java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap无法转换为xxx。用户
那么,如何使用Gson将jsonString转换为HashMap<String, ArrayList<User>>
对象呢?
我在这里找到了一个解决方案:(详细解释(https://stackoverflow.com/a/32494079/1472483
使用TypeToken
Type type = new TypeToken<HashMap<String, ArrayList<User>>>() {}.getType();
HashMap<String, ArrayList<User>> map = gson.fromJson(jsonString, type);