当我的端点的 JSON 响应"data"
元素返回结果时,我成功地将所述结果解析为Map<String, MyCustomDataType>
.
但是当我的端点的 JSON 响应的"data"
元素返回空时,例如"data": []
,我的反序列化会引发错误“行号无效 JSON:预期'{,种类:kotlinx.serialization.StructureKind$Map@6f12df1'”
在我使用 aList
反序列化数据元素的不同端点中,我可以处理这个空数据数组结果而不会出错
@SerialName("data")
List<DataItem> = listOf(),
我现在如何使用地图类似地处理这个问题?这是我目前未成功尝试的:
@Serializable
data class MyDataClass(
@SerialName("success")
var success: Boolean = false,
@SerialName("data")
var `data`: Map<String, MyCustomDataType> = emptyMap(),
@SerialName("statusCode")
var statusCode: Int = 0
) {
@Serializable
data class MyCustomDataType(
@SerialName("updated")
var updated: List<Updated> = listOf(),
@SerialName("deleted")
var deleted: List<Deleted> = listOf()
) {
@Serializable
data class Updated(
@SerialName("myid")
var uid: Int? = 0
)
@Serializable
data class Deleted(
@SerialName("myId")
var uid: Int? = 0
)
}
}
正确解析时的示例 JSON 响应:
"myDataClass": {
"success": true,
"data": {
"39": {
"updated": [
{
"myid": 1794
}
]
},
"75": {
"updated": [
{
"myid": 1794
}
]
}
},
"statusCode": 200
}
抛出错误时的示例 JSON:
{
"myDataClass":{
"success":true,
"data":[],
"statusCode":200
}
}