Получение вложенного массива из файла json с помощью Retofit Kotlin
получил данные с сайта в формате json используя retrofit на Kotlin.все вроде бы нормально , но есть затруднение со вложенными массивами, прошу помочь.
Файл:
{
"location":
{},
"current":
{},
"forecast":
{
"forecastday": [
{
"hour": [
{
"time_epoch": 1719010800,
"time": "2024-06-22 00:00"
}
]
}
]
}
}
под него сделал Data класс:
data class Weatherapi(
val forecast: Forecast
)
data class Forecast(
val forecastday:List<ForecastDay>
)
data class ForecastDay(
val hour: List<HourW>? = null
)
data class HourW(
val time_epoch: String?=null,
val time: String?=null,
)
Проблема -получение списка в виде LazyRow из data class HourW Код:
val scope = rememberCoroutineScope() var forecast by remember { mutableStateOf(listOf<ForecastDay>()) } var hourW by remember { mutableStateOf(listOf<HourW>()) } val interseptor = HttpLoggingInterceptor() interseptor.level = HttpLoggingInterceptor.Level.BODY val client = OkHttpClient.Builder().addInterceptor(interseptor).build() val retofit = Retrofit.Builder().baseUrl(baseurl).client(client) .addConverterFactory(GsonConverterFactory.create()).build() val retofitApi = retofit.create(Api_Weaterapi::class.java) scope.launch { val result = retofitApi.Get3day(M_Api, city, lang, dayW = dayW) forecast = result.forecast.forecastday } Column(Modifier.fillMaxWidth()) { for (i in 0 until forecast.size) { val dd = forecast[i].hour.toString() LazyRow { itemsIndexed(forecast[i].hour) { j, item -> W_hourCard(hourW = item) } } } }
вызываемая ф-я (Карточка) :
@Composable
fun W_hourCard(hourW: HourW?) {
val timeW = hourW?.time
Card(
Modifier
.fillMaxWidth()
.padding(2.dp)
) {
Column(
modifier = Modifier, horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Text(text = timeW.toString())//Time
}
}
}
В