Как сделать список 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
Kotlin Android Button.onClickListener вызывает NoSuchMethodError Как создать пакетные функции? =? UTF? Q? Строка Newsgroup от ASCII до Unicode Kotlin: Может ли абстрактный суперкласс иметь абстрактный конструктор? Как проверить, имеют ли два объекта один класс в Котлине? Лучший способ обработки возвратов в предикате Почему переменная не может быть правильно инициализирована в встроенной функции, как в java? Регулярное выражение, которое распознает / * … * / note Не удается сохранить модель данных, содержащую Список <Модель> с комнатой ORM Kotlin Могут ли члены данных Kotlin инициализироваться в java с помощью kotlin default getter и setter? Kotlin Аннотация IntDef Ожидаемый тип не принимает значения null в Java, но значение может быть пустым в Kotlin Android Kotlin – Volley Неожиданный код ответа 400 kotlin – автоматическое преобразование числовых типов Как объекты и сопутствующие объекты Kotlin и ленивые работы с памятью