Android - Retrofit2 - Kotlin: ответ REST API отличается от формата модели - PullRequest
0 голосов
/ 28 февраля 2019

Остальные API, которые я использую, возвращают ответ вроде этого (погода API, здесь я запрашиваю город по названию):

{
    "name": "LA",
    "main": {
        "temp": 5.5,
        "min_temp": 1,
        "max_temp": 8
    }
}

, но я не уверен, как его проанализироватьэтот объект:

class City(val name: String, val temp: Double, val temp_min: Double, val temp_max: Double)

Я использую GsonConverterFactory, но это только менеджеры, чтобы найти название города.Как получить и другие свойства, даже если они хранятся во вложенном объекте JSON?

val retrofit = Retrofit.Builder()
        .addConverterFactory(GsonConverterFactory.create())
        .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
        .baseUrl(baseUrl)
        .build()

Спасибо!

1 Ответ

0 голосов
/ 28 февраля 2019

Вам нужно использовать data class, а json содержит два объекта.

data class City(val name: String, val main: Main)
data class Main(val temp: Double, val min_temp: Int, val max_temp: Int)

Вот и все

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...