我正在使用Retrofit2访问API,但无法以灵活的方式将响应解析为对象。
API响应采用以下通用格式:
Request: /api/users
Response:
{
"success": true,
"message": "Get all users",
"users": [{
"id": 1
"name": "User Name"
}]
}
Request: /api/user/1/items
Response:
{
"success": true,
"message": "Get all items",
"items": [{
"id": 1
"name": "Item Name"
}]
}
模型通常采用以下格式:
data class ApiResponse<T>(val success: Boolean,
val message: String,
val payload: T)
data class User(val id: String, val name: String)
data class Item(val id: String, val name: String)
我尝试使用okhttp3.Interceptor
来解析响应,但我只是想不出如何处理动态键(用户,项目等)。我在发出请求时知道密钥,但是我不确定如何将其传达给我的拦截器,以便从JSON获取值。
答案 0 :(得分:0)
使用@SerializedName(“ message”)val消息:字符串,依此类推。