使用Kotlinx序列化序列化可选列表

时间:2019-08-27 07:09:39

标签: json kotlin kotlinx.serialization

如何使用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 个答案:

答案 0 :(得分:2)

您可以使用NullableSerializer

val dataJson = json.stringify(NullableSerializer(String.serializer()).list, data)
println(dataJson) // prints ["v1",null,"v3"]