【问题标题】:Make a field optional in Kotlinx serialization在 Kotlinx 序列化中使字段可选
【发布时间】:2021-09-12 11:54:17
【问题描述】:

这是我的 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: 字段“参数”是 序列名称为“响应”的类型是必需的,但它丢失了

如果Json 中缺少该字段,我期待将字段parameters 设置为null

【问题讨论】:

    标签: android json kotlin parsing kotlinx.serialization


    【解决方案1】:

    您需要为 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

    【讨论】:

      猜你喜欢
      • 2019-12-31
      • 2020-12-05
      • 2021-02-24
      • 2016-06-19
      • 2019-06-17
      • 2018-01-06
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      相关资源
      最近更新 更多