Как заполнить список с помощью Kotlin, retrofit и RXjava

Моя интеграция с сервисом готова, я могу увидеть свой массив в журнале заявок, но я не могу заполнить список.

Я, честно говоря, уже пробовал все, что знаю, я новичок в kotlin, язык меня немного смущает. Кто-то может определить, где может быть ошибка, что я делаю неправильно.

JSON / запрос:

{"0":{"id":1,"nome":"teste"},"1":{"id":2,"nome":"teste 2"}} 

apiClient.kt

  val service : ApiInterface val URL = "json" init { val logging = HttpLoggingInterceptor() logging.level = HttpLoggingInterceptor.Level.BODY val httpClient = OkHttpClient.Builder() httpClient.addInterceptor(logging) val gson = GsonBuilder().setLenient().create() val retrofit = Retrofit.Builder() .baseUrl(URL) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create(gson)) .client(httpClient.build()) .build() service = retrofit.create<ApiInterface>(ApiInterface::class.java) } 

ApiInterface.kt

  @Headers("Accept: application/json") @GET("/request") fun getInstituicoes(): Observable<Instituicao> 

Instituicao.kt (юридическое лицо)

  data class Instituicao(val id: Int, val nome: String) 

InstituicaoActivity :: ListView

  listView = ListView(this) setContentView(listView) instituicao = ArrayAdapter(this, android.R.layout.simple_list_item_1, instituicoes) listView?.adapter = instituicao var api = ApiClient() api.service.getInstituicoes() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ instituicao -> instituicoes.add("${instituicao.id} - ${instituicao.nome}") }, { e -> e.printStackTrace() }, { instituicao?.notifyDataSetChanged() }) } 

результат 🙁

 0-null 

Ваш объект – это

 {"0": {"id":1,"nome":"teste"} 

Гсэн ожидал разобрать только эту пьесу как один объект

 {"id":1,"nome":"teste"} 

Поскольку он не смог, он вернул null.

Если возможно, вам нужно исправить код сервера, чтобы вернуть вам список объектов, а не «проиндексированную карту»,

Ответ сервера должен быть

 [ {"id":1,"nome":"teste"}, {"id":2,"nome":"teste 2"} ] 

После того, как вы исправите сервер, чтобы вернуть его, необходимо обновить дооснащение

 Observable<List<Instituicao>> 

И если это невозможно, вам нужно будет исследовать создание пользовательских парсеров для Gson и зарегистрировать их в Retrofit

(… или разобрать ваш JSON вручную)