Deserializacja typów ogólnych za pomocą GSON
Mam problemy z implementacją Deserializacji Jsona w mojej aplikacji na Androida (z biblioteką Gson)
Zrobiłem taką klasę
public class MyJson<T>{
public List<T> posts;
}
A wywołanie deserializacji to:
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);
...
}
}
Problem polega na tym, że lista wyników.posts po wywołaniu zawiera jedną tablicę obiektów LinkedTreeMap (z poprawnymi wartościami, więc problemem jest Deserializacja) zamiast obiektów MyJson. Kiedy używam MyObject zamiast T, wszystko działa poprawnie, a MyObject jest poprawny.
Czy jest więc jakiś sposób na wdrożenie połączenia deserializacji bez tworzenia niestandardowego deserializatora?