[英]Parse object of dynamic string with Moshi and Retrofit
我有一個 JSON,如下所示。
{
"code": "success",
"response": {
"data": {
"xyz": "abc.pdf",
"abc: "efgh.pdf"
}
},
"message": "Files downloaded Successfully"
}
響應 object 中的內部數據,密鑰是動態的(xyz、abc 等)。 我在 retrofit 轉換器中使用 Moshi。 我的數據類如下。
data class RestResponse<T> (
val code: String,
val message: String,
val response: T
)
data class ProposalDownloadResponse(val data: DownloadData)
data class DownloadData(val list: Map<String, String>)
但是我在解析后在列表中得到null 。 雖然我有數據。
改造 function 如下所示。
@POST
suspend fun downloadProposal(
@Url url: String,
@Header("accessToken") key: String,
@Body flightDetails: FlightDetails,
): GenericResponse<RestResponse<ProposalDownloadResponse>>
原因是您正在嵌套不需要的 Object。 您的data
本身屬於Map<String, String>
類型,因此不需要DownloadData
。 如下使用它。
data class ProposalDownloadResponse(val data: Map<String, String>)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.