使用改造解析键值对
Parse key value pair using retrofit
{
"result": "success",
"response_code": 200,
"message": "data list",
"data": [
{
"Assigned": "14",
"Closed": "150",
"Escalated TTO": "102",
"Escalated TTR": "2",
"New": "44",
"Pending": "4",
"Resolved": "14"
}
]
}
以上是我要解析的响应,但我不想为其创建静态 POJO。该模型应该是动态的,这样即使上面的响应中有另一个键值对,如下所示,也可以解析响应我想可以使用 HashMap
.
{
"result": "success",
"response_code": 200,
"message": "data list",
"data": [
{
"Assigned": "14",
"Closed": "150",
"Escalated TTO": "102",
"Escalated TTR": "2",
"New": "44",
"Pending": "4",
"Resolved": "14",
"xx": "xx",
"xx": "xx",
"xx": "xx",
}
]
}
正如评论中所讨论的,理想的场景是 Map<String, String>
。这些模型可能看起来像(假设您使用的是 Gson。其他人应该类似):
data class ApiResponse(
@SerializedName("result")
val result: String,
@SerializedName("responseCode")
val responseCode: Int,
@SerializedName("message")
val message: String,
@SerializedName("data")
val data: List<Map<String, String>>
)
{
"result": "success",
"response_code": 200,
"message": "data list",
"data": [
{
"Assigned": "14",
"Closed": "150",
"Escalated TTO": "102",
"Escalated TTR": "2",
"New": "44",
"Pending": "4",
"Resolved": "14"
}
]
}
以上是我要解析的响应,但我不想为其创建静态 POJO。该模型应该是动态的,这样即使上面的响应中有另一个键值对,如下所示,也可以解析响应我想可以使用 HashMap
.
{
"result": "success",
"response_code": 200,
"message": "data list",
"data": [
{
"Assigned": "14",
"Closed": "150",
"Escalated TTO": "102",
"Escalated TTR": "2",
"New": "44",
"Pending": "4",
"Resolved": "14",
"xx": "xx",
"xx": "xx",
"xx": "xx",
}
]
}
正如评论中所讨论的,理想的场景是 Map<String, String>
。这些模型可能看起来像(假设您使用的是 Gson。其他人应该类似):
data class ApiResponse(
@SerializedName("result")
val result: String,
@SerializedName("responseCode")
val responseCode: Int,
@SerializedName("message")
val message: String,
@SerializedName("data")
val data: List<Map<String, String>>
)