JSON 反序列化包含空值的集合
JSON Deserialization of collections that contain null values
我得到以下 JSON 字符串:
{"userIds":[null, "FA9C67A8-1C22-4393-A701-136C85BB0D6F"]}
我想将其反序列化为具有一个元素(UUID)的集合。我的目标 class 看起来有点像这样:
data class TestDto(
val userIds: Set<UUID> = emptySet(),
[...]
)
我正在使用 Kotlin 1.5.21,Spring-Boot 2.4.4。 userIds
的类型不允许集合中有空值。但是,当反序列化 JSON 字符串时,该集合包含两个值,空值和 UUID
。这导致 NullPointerException
后来我实际上认为可以通过将类型设置为 Set<UUID>
而不是 Set<UUID?>
.
来消除
如果提供了反序列化,我如何ignore/filter排除任何空值?
我觉得
@JsonSetter(contentNulls = Nulls.SKIP)
val userIds: Set<UUID> = emptySet(),
[...]
应该可以解决问题
我得到以下 JSON 字符串:
{"userIds":[null, "FA9C67A8-1C22-4393-A701-136C85BB0D6F"]}
我想将其反序列化为具有一个元素(UUID)的集合。我的目标 class 看起来有点像这样:
data class TestDto(
val userIds: Set<UUID> = emptySet(),
[...]
)
我正在使用 Kotlin 1.5.21,Spring-Boot 2.4.4。 userIds
的类型不允许集合中有空值。但是,当反序列化 JSON 字符串时,该集合包含两个值,空值和 UUID
。这导致 NullPointerException
后来我实际上认为可以通过将类型设置为 Set<UUID>
而不是 Set<UUID?>
.
如果提供了反序列化,我如何ignore/filter排除任何空值?
我觉得
@JsonSetter(contentNulls = Nulls.SKIP)
val userIds: Set<UUID> = emptySet(),
[...]
应该可以解决问题