Jackson 枚举将不需要的值反序列化为 "else" 值
Jackson enum deserialize unwanted values to an "else" value
我正在尝试将 XML 字符串反序列化为该枚举 class
enum class FishType {
@JsonProperty("fish-trout") TROUT,
@JsonProperty("fish-salmon") SALMON,
@JsonProperty("fish-halibut") HALIBUT,
...
}
有很多类型,但我只对使用列出的前三种类型感兴趣。有没有办法将任何其他字符串反序列化为 FishType.ELSE 条目,而不是手动输入每个可能的字符串?
@JsonEnumDefaultValue 适用于 XML 至:
enum class FishType {
@JsonProperty("fish-trout") TROUT,
@JsonProperty("fish-salmon") SALMON,
@JsonProperty("fish-halibut") HALIBUT,
@JsonEnumDefaultValue ELSE
}
fun main() {
val mapper = XmlMapper().apply {
enable(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE)
}
println(mapper.readValue<FishType>("<FishType>fish-trout</FishType>")) //TROUT
println(mapper.readValue<FishType>("<FishType>abc</FishType>")) //ELSE
}
我正在尝试将 XML 字符串反序列化为该枚举 class
enum class FishType {
@JsonProperty("fish-trout") TROUT,
@JsonProperty("fish-salmon") SALMON,
@JsonProperty("fish-halibut") HALIBUT,
...
}
有很多类型,但我只对使用列出的前三种类型感兴趣。有没有办法将任何其他字符串反序列化为 FishType.ELSE 条目,而不是手动输入每个可能的字符串?
@JsonEnumDefaultValue 适用于 XML 至:
enum class FishType {
@JsonProperty("fish-trout") TROUT,
@JsonProperty("fish-salmon") SALMON,
@JsonProperty("fish-halibut") HALIBUT,
@JsonEnumDefaultValue ELSE
}
fun main() {
val mapper = XmlMapper().apply {
enable(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE)
}
println(mapper.readValue<FishType>("<FishType>fish-trout</FishType>")) //TROUT
println(mapper.readValue<FishType>("<FishType>abc</FishType>")) //ELSE
}