使用 kotlinx 序列化序列化选项列表
Posted
技术标签:
【中文标题】使用 kotlinx 序列化序列化选项列表【英文标题】:Serialize a list of optionals with kotlinx serialization 【发布时间】:2019-12-31 07:43:40 【问题描述】:如何使用 kotlinx 序列化对可选字符串列表进行字符串化?我想执行类似于:
val json = Json(JsonConfiguration.Stable)
val data: List<String?> = listOf("v1", null, "v3")
val dataJson = json.stringify(String.serializer().list, data)
但是,这不会编译。我知道String.serializer().list
提供了SerializationStrategy<List<String>>
,我需要SerializationStrategy<List<String?>>
。如何获得后者?
【问题讨论】:
【参考方案1】:你可以使用NullableSerializer
:
val dataJson = json.stringify(NullableSerializer(String.serializer()).list, data)
println(dataJson) // prints ["v1",null,"v3"]
【讨论】:
正是我想要的,非常感谢!以上是关于使用 kotlinx 序列化序列化选项列表的主要内容,如果未能解决你的问题,请参考以下文章
在 Kotlin/Native 中使用 kotlinx.serialization 进行多态反序列化