Десериализация массива JSON с использованием GSON?

У меня есть JSON как:

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

Моя категория модели как:

public class Category {

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

А мой десериализатор gson выглядит следующим образом:

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

Я использую библиотеку Retrofit, которая использует gson для сериализации / десериализации объектов json. Я передаю этот пользовательский десериализатор gson для модернизации, но он выдает ошибку. Можете ли вы сказать мне, где я иду не так при десериализации?

Ошибка:

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

Ожидаемый результат:

я хочуArrayList of Category&nbsp;из JSON.