Generische Typen mit GSON deserialisieren

Ich habe einige Probleme mit der Implementierung der Json-Deserialisierung in meiner Android-Anwendung (mit der Gson-Bibliothek)

Ich habe Klasse wie diese gemacht

public class MyJson<T>{
    public List<T> posts;
}

Und der Aufruf zur Deserialisierung lautet:

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);
  ...
  }
}

Das Problem ist, dass die Liste result.posts nach dem Aufruf ein Array von LinkedTreeMap-Objekten enthält (mit korrekten Werten, sodass das Problem die Deserialisierung ist) anstelle von MyJson Objects. Wenn ich MyObject anstelle von T verwende, läuft alles einwandfrei und MyObject ist korrekt.

Gibt es also eine Möglichkeit, einen Deserialisierungsaufruf zu implementieren, ohne einen benutzerdefinierten Deserialisierer zu erstellen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage