这是我的 pojo 课
@Serializable
data class Response(
@SerialName("message") val message: String?,
@SerialName("parameters") val parameters: Map<String, String>?
)
这是 Json,我试图从以下位置解码:
{
"message": "Some text"
}
这里,parameters
字段是可选的。当我尝试解码时
Json.decodeFromString<Response>(response)
我收到以下异常:
kotlinx.serialization.MissingFieldException: Field 'parameters' is required for type with serial name 'Response', but it was missing
如果 Json
parameters
设置为 null
最佳答案
您需要为 parameters
属性指定默认值,如下所示:
@Serializable
data class Response(
@SerialName("message") val message: String?,
@SerialName("parameters") val parameters: Map<String, String>? = null
)
您可以在此处阅读更多信息:https://github.com/Kotlin/kotlinx.serialization/blob/master/docs/basic-serialization.md#optional-properties
关于android - 在 Kotlinx 序列化中使字段可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68192794/