Преобразование Any в ArrayList в Котлине, дооснащение

Я использую Kotlin и Retrofit в своем приложении для Android. Ответ – это класс. с общим значением, т.е. Данные: Любые?

data class GlobalResponse(@Expose val status: String, @Expose val message: String, @Expose val data: Any?) data class District(@Expose val name:String) @GET("{endpoint}") fun getData( @Path("endpoint") endpoint: String ): Observable<GlobalResponse> RestService.create().getData("res") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ response -> // Ok Log.e("Hello", "Hello") // problem here // Jumps to error-> below Log.e("Name", ((response.data as ArrayList<District>)[0]).name) }, { error -> // do something }) 

Я получаю данные с сервера, но не могу получить индивидуальное значение объекта. лог Hello печатает отлично, но второй журнал не выполняется. Затем он выдает ошибку.


Хорошо, я, наконец, решил проблему. Все, что мне нужно было сделать, – это преобразовать данные в строку JSON с помощью Gson и снова преобразовать строку Gson в класс объектов JSON Array. Я думал, что могу прямо набирать текст. 🙁 Потому что это то, что сделал id в чистом java

В любом случае, вот код.

 RestService.create().getData("res") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ response -> val temp:String = Gson().toJson(response.data) val districtList:ArrayList<District> = Gson().fromJson(temp, genericType<ArrayList<District>>()) Log.e("Name", (districtList[0]).name) }, { error -> // do something }) inline fun <reified T> genericType() = object : TypeToken<T>() {}.type!! 

Intereting Posts
Как использовать команду `java` с` kotlin-compiler.jar` для компиляции исходных кодов Kotlin? Как элегантная пара родительского и дочернего тегов в определении DSL в Kotlin Kotlin IllegalAccessError с + = и – = для делегированного интерфейса Выполнение Android не выполнено для задачи app.compileDebugKotlin, когда используется firebase CollapsingToolbarLayout показывает сломанное название при свертывании При использовании setcontentview в BottomsheetDialog возникает ошибка, например: «ни одна из следующих функций не может быть вызвана с предоставленными аргументами» Неожиданные жетоны (используйте, чтобы разделить выражения в одной строке) в котлин Kotlin Voice Record Upload Overwriting on Firebase JAX-RS (Apache CXF) Контекстная инъекция через сеттер Как использовать Kotlin, когда найти, является ли строка числовой? @StringRes, @DrawableRes, @LayoutRes и т. Д. Андроидные аннотации lint check с параметрами kotlin Как связать преобразования в Android при использовании живых данных? Случайное переопределение: следующие объявления имеют одну и ту же подпись JVM Android: панель инструментов не отображается Что отличает <reified T> от <reified T: Any> в Котлине?