gpt4 book ai didi

kotlin - 序列化省略空值

转载 作者:行者123 更新时间:2023-12-05 04:28:01 25 4
gpt4 key购买 nike

我有这样一个类:

@Serializable
data class MyClass(
val prop1: Int,
val prop2: Int?
)

当 prop2 为 null 时,我想序列化此类而不包含 prop2 属性。我可以这样做:

val json = Json { explicitNulls = false }
json.encodeToString(MyClass(42, null)) // gives {"prop1": 42}

不幸的是,在一个大型项目中有很多地方序列化这个类,目前他们只是使用显式包含空值的Json.encodeToString

如何强制此类的序列化以不序列化空值?我需要这个来申请这门课;项目中的其他可序列化类需要继续具有显式空值。

最佳答案

如果您可以为所选字段提供默认值 null , 然后你可以使用 EncodeDefault annotation :

@Serializable
data class MyClass(
val prop1: Int,
@EncodeDefault(NEVER) val prop2: Int? = null
)

这将避免编码 prop2如果它为 null,无论 encodeDefaults 的设置如何序列化类实例时使用的 Json 序列化程序的属性。

关于kotlin - 序列化省略空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72704282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com