Ошибка при получении JSON файла

Пытаюсь получить JSON файл от сервера и заполнить список этими данными. Проблема в том, что я получаю следующую ошибку: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $ Я понимаю что в Service можно заменить Call<ProductList> на Call<List<ProductList>>и ошибка исчезнет. Но я не хочу работать с массивом. Идея в том что мой JSON файл содержит категории(массивы с данными) я создал для них необходимые POJO классы, а сейчас хочу "объединить" категории из JSON с моими классами POJO. Посоветуйте как это сделать избегая использования Call<List<ProductList>>. JSON файл:

{
  "beauty_health": [
    {
      "id": 1,
      "brand": "Kaya Youth",
      "category": "Beauty & Health",
      "name": "Hydro Replenish Face Wash",
      "description": "Hydro Replenish Face Wash, With Aloe Vera",
      "price": 42,
      "icon": ""
    },
    {
      "id": 2,
      "brand": "Kaya Youth",
      "category": "Beauty & Health",
      "name": "Oxy-Infusion Face Wash",
      "description": "Kaya Youth Oxy-Infusion Face Wash,100",
      "price": 18,
      "icon": ""
    }],
  "electronics": [
    {
      "id": 1,
      "brand": "OnePlus",
      "category": "Electronics",
      "name": "OnePlus 8",
      "description": "OnePlus 8T 64GB",
      "price": 250,
      "icon": ""
    },],

Главный Pojo класс:

class ProductList {
    @SerializedName("beauty_health")
    var beautyHealth: List<BeautyHealth>? = null

    @SerializedName("electronics")
    var electronics: List<Electronic>? = null

    @SerializedName("fashion")
    var fashion: List<Fashion>? = null

    @SerializedName("sports")
    var sports: List<Sport>? = null

    @SerializedName("popular")
    var popular: List<Popular>? = null

    @SerializedName("image_slider")
    var imageSlider: List<ImageSlider>? = null
}

Пример POJO класса категории:

class BeautyHealth {
    @SerializedName("id")
    var id: Int? = null

    @SerializedName("brand")
    var brand: String? = null

    @SerializedName("category")
    var category: String? = null

    @SerializedName("name")
    var name: String? = null

    @SerializedName("description")
    var description: String? = null

    @SerializedName("price")
    var price: Int? = null

    @SerializedName("icon")
    var icon: String? = null
}

Service:

@GET(value = "Store-Products")
    fun onFetchAllProducts() : Call<ProductList>

Запрос:

val api = retrofit.create(StoreAPI::class.java)
        api.onFetchAllProducts().enqueue(object : Callback<ProductList> {
            override fun onFailure(call: Call<ProductList>, t: Throwable) {
                Log.d(TAG, "onFailure: ${t.message}")
            }

            override fun onResponse(call: Call<ProductList>, response: Response<ProductList>) {
                mutableLiveData.postValue(response.body())
            }
        })
        return mutableLiveData

Ответы (0 шт):