Cómo hacer una list KOTLIN con lists de corchetes API JSON

Estoy tratando de hacer una list en Kotlin a partir de una API de JSon. Hice el tutorial de Udemy e hice la aplicación Meteorológica. Funciona perfectamente, pero ahora necesito hacer una nueva list con una list de pedidos.

Aquí está el código API del time:

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

Pero ahora necesito hacer una list, y para tomar el ejemplo anterior, se ve así:

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

Aquí está el código de Kotlin que está trabajando con el primer ejemplo de 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) } } 

Así que traté de hacer una list de objects "pronosticados", pero como puede ver, esto no contiene ninguna list de matriz json, pero las keys son "0" y "1" (no hay '[')

Estoy seguro de que el problema no es la API, ya que mi amigo está haciendo la misma aplicación, pero para IOS, y esto está funcionando para él.

Supongo que, cuando se agregarán más pedidos, deberíamos tener un "4", "5", etc. keys y valores.

Entonces mi pregunta es: ¿cómo creo una list (quién será un ListView xml, y se actualizará automáticamente) de este tipo de objects?

(Perdón por publicar tanto código, pero estoy realmente atrapado en eso)

Gracias de antemano.