Десериализация общих типов с помощью GSON
У меня есть некоторые проблемы с реализацией десериализации Json в моем приложении Android (с библиотекой Gson)
Я сделал урок, как это
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 работает правильно.
Так есть ли способ реализовать вызов десериализации без создания собственного десериализатора?