Deserialisieren von JSON-Arrays mit GSON?

Ich habe mein json als:

{
   "status": 200,
   "data": [
       {
            "catId": 638,
            "catName": "Helena Bonham Carter",
            "catUniqueName": "helena-bonham-carter",
            "catSlug": ""
       },
       {
        ...
       }
   ]
}

Mein Kategoriemodell als:

public class Category {

    private double catId;
    private String catName;
    private String catUniqueName;
    private String catSlug;
}

Und mein gson custom Deserializer sieht wie folgt aus:

Type listType = new TypeToken<ArrayList<Category>>(){}.getType();

Gson gson = new GsonBuilder()
            .registerTypeAdapter(listType, new CategoryDeserializer())
            .create();

private class CategoryDeserializer implements JsonDeserializer {
    @Override
    public Category deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
            throws JsonParseException {
        Gson gson = new Gson();
        return gson.fromJson(((JsonObject) json).get("data"), typeOfT);
    }
}

Ich verwende eine Retrofit-Bibliothek, die gson zum Serialisieren / Deserialisieren von json-Objekten verwendet. Ich übergebe diesen benutzerdefinierten gson-Deserialisierer zur Nachrüstung, aber es gibt mir einen Fehler. Kannst du mir sagen, wo ich beim Desrialisieren falsch liege?

Error

java.util.ArrayList cannot be cast to com.compzets.app.models.Category

Erwartetes Ergebnis

Ich möchteArrayList of Category von json.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage