为什么JSON没有默认值的内容属性?
我想这是序列化只有什么是真正需要重建对象,但完全无用的,当我只是想创建API JsonResponses...
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.encodeToJsonElement
@Serializable
data class Test(
val required: String,
val defaulted: String = "default",
)
val test = Test(
required = "set"
)
println(Json.encodeToJsonElement(test))
// Result= {"required":"set"}
1条答案
按热度按时间pw9qyyiw1#
文档中给出的原因是为了避免视觉混乱。
如本文文档所述,如果希望将具有默认值的属性包含在JSON中,可以使用
@EncodeDefault
标记这些属性:或者,如果您想在没有注解的情况下在任何地方都这样做,请创建一个定制的Json编码器,如下所示(文档在这里):