如何用Kotlin+Retrofit获取嵌套JSON对象中的数据
解决Retrofit获取嵌套JSON对象字段的问题
我需要通过Retrofit的GET请求获取嵌套在JSON对象中的数据,之前找到的大多是Java相关方案,目标是提取request{}内的from、to和amount字段。
初始代码
Retrofit GET请求方法
@GET("convert") fun getCurrencyConverter( @Query("from") from: String, @Query("to") to: String, @Query("amount") amount: String ): Call<ConvertModel>
初始数据模型ConvertModel
data class ConvertModel ( @SerializedName("from") val from: String, @SerializedName("to") val to: String, @SerializedName("amount") val amountToConvert: Double, @SerializedName("result") val convertedAmount: Double )
解决方案
发现接口返回的JSON中"request"是一个独立嵌套对象,因此需要创建对应的数据类映射该结构,再将其嵌套到主响应模型中。
嵌套对象数据模型RequestModel
data class RequestModel( @SerializedName("from") val from: String, @SerializedName("to") val to: String, @SerializedName("amount") val amount: Double )
修改后主响应模型ConvertModelReserve
data class ConvertModelReserve ( @SerializedName("request") val request: RequestModel, @SerializedName("result") val result: Double )
修改后的Retrofit GET请求方法
@GET("convert") fun getCurrencyConverter( @Query("from") from: String, @Query("to") to: String, @Query("amount") amount: String ): Call<ConvertModelReserve>
内容的提问来源于stack exchange,提问作者Antony Lajes
相关产品推荐
相关产品推荐

