Android-Retrofit2-Kotlin:REST API响应的格式与模型不同

时间:2019-02-28 12:28:01

标签: android kotlin retrofit2

我正在使用的其余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 :(得分:2)

您需要使用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)

就这样