我在我的 Android 应用程序(使用 Gson 库)中实现 Json 反序列化时遇到了一些问题
我做了这样的课
public class MyJson<T>{
public List<T> posts;
}
反序列化调用是:
public class JsonDownloader<T> extends AsyncTask<Void, Void, MyJson<T>> {
...
protected MyJson<T> doInBackground(Void... params) {
...
Reader reader = new InputStreamReader(content);
GsonBuilder gson = new GsonBuilder();
Type collectionType = new TypeToken<MyJson<T>>() {}.getType();
result = gson.create().fromJson(reader, collectionType);
...
}
}
问题是调用后的 result.posts 列表包含一个 LinkedTreeMap 对象数组(具有正确的值,所以问题是反序列化)而不是 MyJson 对象。当我使用 MyObject 而不是 T 时,一切都运行良好并且 MyObject 是正确的。
那么有什么方法可以在不创建自定义反序列化器的情况下实现反序列化调用?