我将字段从JSON反序列化为我的自定义枚举。我的要求是,如果JSON字段字符串不是我的枚举的一部分,它应该将其反序列化为DEFAULT
枚举值。
这是我的枚举。
public enum Status {
Y("Y"),
N("N"),
U("U"),
A("A"),
C("C"),
R("R"),
UNKNOWN(/* any other string value */) // this is what i need
private final String textualValue;
Status(String textualValue) {
this.textualValue = Objects.requireNonNull(textualValue);
}
@Override
public String toString() {
return textualValue;
}
所以,基本上如果JSON包含类似{"status":"X"}
的内容,我希望将其反序列化为Status.UNKNOWN
,就像现在一样。 {“status”:“A”}反序列化为Status.A
。
我正在与ObjectMapper
进行映射。
protected static final ObjectMapper jsonMapper =
new ObjectMapper()
.registerModule(new Jdk8Module())
.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING)
.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
这样的事情可能吗?