Преобразование 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
Kotlin и TornadoFX: привязать наблюдаемое свойство к функции коллекции? Apache FOP 2.2 Включить шрифты, используя относительный путь Как указать поле в коробке может быть равно NULL в моем коде миграции Realm? Найти свойства с нулевым значением через отражение Плагин Kotlin-allopen + @JvmField на val не достаточно окончательный Как справляться с проблемой перегрузки неоднозначность функций с дженериками? Поставщик контента в Android от Kotlin В Котлине как открыть ссылку в новом окне Недвижимость без геттера в Котлине Заменить setter для переменной, определенной в конструкторе по умолчанию Связывание с JMM классами, определенными asm из Kotlin с использованием Gradle Как указать версию RxJava при использовании RxKotlin? В чем разница, если я удаляю ключевое слово 'var' в классе? Адаптер, дублирующий просмотр Recycler Тип вывода с ленивой инициализацией и общим заводским методом в Котлине