gpt4 book ai didi

jackson - 如何在 Json 反序列化为 Java 对象期间跳过使用 @JsonCreator for Enums?

转载 作者:行者123 更新时间:2023-12-02 09:21:00 24 4
gpt4 key购买 nike

Enum 类,ColorName 是使用 ColorName json 文件中的 jsonschema2pojo 生成的。因此,默认情况下,Enum 类默认使用 @JsonCreator 注释的 fromValue 方法。

@JsonCreator
public static ColorName fromValue(String value) {
ColorName constant = constants.get(value);
if (constant == null) {
throw new IllegalArgumentException(value);
} else {
return constant;
}
}

如果此类用于将 json 字符串反序列化为 Java 对象,并且 json 中传递了新的/错误的 Enum 值,则反序列化会失败,并显示 IllegalArgumentException()当尝试使用下面的方法避免此错误时,它不起作用

ObjectMapper om = new ObjectMapper(); om.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true);

这个问题似乎是因为 @JsonCreator 总是受到尊重。有没有办法指示解串器跳过此操作或忽略未知的枚举值?

最佳答案

https://github.com/FasterXML/jackson-databind/pull/1642/files 开始,这个问题已通过 Jackson 库本身的更改得到解决。

根据https://github.com/FasterXML/jackson-databind/pull/1642它已向后移植到 Jackson 2.8.9,因此请尝试升级到该版本。

关于jackson - 如何在 Json 反序列化为 Java 对象期间跳过使用 @JsonCreator for Enums?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43823897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com