【发布时间】:2020-07-17 23:28:21
【问题描述】:
我在 JSON 反序列化并将其映射到枚举时遇到问题。我从与这两个示例类似的外部 API 获取 JSON:
{
"someValue": null
}
{
"someValue": "exists"
}
我想将空值映射到某个默认枚举值。
模型对象
SomeEnum someValue;
和枚举类
public enum SomeEnum {
@JsonProperty("exists") EXISTS,
NONE;
}
对于存在,值模型类包含正确的枚举,但如果我从 API 获得 null,它仍然是模型中的 null。
我尝试创建一些由@JsonCreator 注释的方法,创建自己的枚举反序列化器,使用@JsonEnumDefaultValue,但这些解决方案都不适合我。有谁知道,我怎样才能将空值反序列化为一些默认枚举?
【问题讨论】:
-
你能简单地说
SomeEnum someValue = NONE;吗? -
那没用,默认值被null覆盖了。
-
这在 json 中不存在该值时有效。如果值为 null,则此方法不起作用。
标签: java spring-boot jackson deserialization