Проблема при получении JSON, Kotlin - Retrofit
Получаю ошибку - Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
Понимаю что ошибка в том что ожидается массив а возвращается объект, но так как только учусь не могу понять что надо исправить.
Код основной:
val retrofitBuilder = Retrofit.Builder()
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(BASE_URL)
.build()
.create(ApiInterface::class.java)
val retrofitData = retrofitBuilder.getData()
retrofitData.enqueue(object : Callback<List<Ostatki>?> {
override fun onResponse(
call: Call<List<Ostatki>?>,
response: Response<List<Ostatki>?>
) {
val responseBody = response.body()!!
val myStringBuilder = StringBuilder()
for (myData in responseBody){
myStringBuilder.append(myData.stock_name)
myStringBuilder.append("\n")
}
Log.d("MainActivity",myStringBuilder.toString())
}
override fun onFailure(call: Call<List<Ostatki>?>, t: Throwable) {
print("g")
Log.d("MainActivity", "onFailure: "+t.message)
}
})
Мой JSON
{
"ostatki": [
{
"stock_name": "my sklad",
"count": 50
},
{
"stock_name": "my sklad2",
"count": 150
}
]
}
Думаю я как то не верно написал эту строку:
call: Call<List<Ostatki>?>
Мой дата класс
package com.rvvtux.myktor
data class Ostatki(
val count: Int,
val stock_name: String
)
Ответы (1 шт):
Автор решения: Виктор Ротанов
→ Ссылка
Благодарю всех! Разобрался! Передал json в виде массива и взлетело!