Как сделать список KOTLIN с помощью списков консоли JSON API

Я пытаюсь сделать список в Kotlin из JSon API. Я сделал учебник от Udemy, и я сделал приложение Weather. Он отлично работает, но теперь мне нужно создать новый список с списком заказов.

Вот код API Weather:

{ "query": { "results": { "channel": { "item" : { "forecast" : [ { "data": 1 }, { "data": 1 }, { "data": 1 } ] } } } } } 

Но теперь мне нужно составить список и взять предыдущий пример, он выглядит так:

 { "query": { "results": { "channel": { "item": { "forecast": { "0": { "data": 1 }, "1": { "data": 1 }, "2": { "data": 1 } } } } } } } 

Вот код Kotlin, который работает с первым примером API:

 // IN FILE WeatherHelp.kt import retrofit2.Call import retrofit2.Callback import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import retrofit2.http.GET import retrofit2.http.Query interface WeatherAPI { @GET("yql?format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys") fun getForecast(@Query("q") q: String) : Call<Weather> } class Weather(val query: WeatherQuery) class WeatherQuery(val results: WeatherResult) class WeatherResult(val channel: WeatherChannel) class WeatherChannel(val title: String, val item: WeatherItem) class WeatherItem(val forecast: List<Forecast>) class Forecast(val date: String, val day: String, val high: String, val low: String, val text: String) class WeatherRetriever { val service : WeatherAPI init { val retrofit = Retrofit.Builder().baseUrl("https://query.yahooapis.com/v1/public/").addConverterFactory(GsonConverterFactory.create()).build() service = retrofit.create(WeatherAPI::class.java) } fun getForecast(callback : Callback<Weather>, searchTerm : String) { var default = searchTerm if (searchTerm == "") { default = "Paris" } val q = "select * from weather.forecast where woeid in (select woeid from geo.places(1) where text=\"${default}\")" val call = service.getForecast(q) call.enqueue(callback) } } 
 // IN FILE ForecastActivity.kt class ForecastActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_forecast) val retriever = WeatherRetriever() val callback = object : Callback<Weather> { override fun onResponse(call: Call<Weather>?, response: Response<Weather>?) { println("RESPONSE") title = response?.body()?.query?.results?.channel?.title println(response?.body()?.query?.results?.channel?.item?.forecast) var forecasts = response?.body()?.query?.results?.channel?.item?.forecast var forecastStrings = mutableListOf<String>() if (forecasts != null) { for (forecast in forecasts) { val newString = "${forecast.date}\nHigh = ${forecast.high} Low = ${forecast.low}\n${forecast.text}" forecastStrings.add(newString) } } var listView = findViewById<ListView>(R.id.forecastListView) var adapter = ArrayAdapter(this@ForecastActivity, android.R.layout.simple_list_item_1, forecastStrings) listView.adapter = adapter } override fun onFailure(call: Call<Weather>?, t: Throwable?) { println("FAILURE") } } val searchTerm = intent.extras.getString("searchTerm") retriever.getForecast(callback, searchTerm) } } 

Поэтому я попытался составить список «прогнозируемых» объектов, но, как вы можете видеть, это не содержит список json-массивов, а ключи как «0» и «1» (нет «[»)

Я уверен, что проблема не в API, так как мой друг делает одно и то же приложение, но для IOS, и это работает на него.

Я полагаю, что, когда будет добавлено больше заказов, у нас должны быть ключи «4», «5» и т. Д.

Поэтому мой вопрос: как мне создать список (который будет xml ListView и будет автоматически обновляться) от таких объектов?

(Извините за размещение столько кода, но я действительно застрял на этом)

Заранее спасибо.

Intereting Posts
Как реализовать свойство, которое извлекается из определенного источника, пока оно не будет установлено непосредственно в Котлин? Добавить библиотеку в приложение Gradle Kotlin Захват объектов с помощью JMockit и Kotlin Не понимаю, как сделать подписку на флюс, работающую в Котлине Плагин не нашел ошибок градиента в автоматизированной сборке Android Откуда берутся три тестовых контейнера? Все еще получение исключения IllegalStateException при использовании API People от Google, несмотря на подписку на другой поток с использованием RxJava Как читать текстовый файл из Firebase в Android-приложение Котлин объясняет мне, что касается полей подкачки Kotlin DSL для создания объектов json (без создания мусора) Выполнение команды Интерфейс vs Function Invocation Основание libgdx не работает Как определить параметры типа для основного конструктора в Котлине? Как реализовать в jna структуру sizeof () с типом объединения Как использовать объект Котлина путем отражения