我有一个lib的枚举,如下所示:
enum class VatRate {
none,
tax10,
tax20
}
我无法修改此枚举。我需要像这样从xml反序列化VatRate
:<testXml>
<vat>vat10</vat>
</testXml>
我知道如何使用jackson创建和使用mixins。但是如何告诉 jackson 使用外部功能进行反序列化呢?
最佳答案
如果您只想自己做:
fun stringToVat(value: String): VatId { return VatId.valueOf(value) }
一种更简单的方法是定义您期望的DTO,然后让 jackson 进行编码:@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "testXml")
data class TestXml(
@field:XmlElement(required = true)
var vat: VatRate? = null
)
编辑:您可以注册自己的自定义Enum Serializer/Deserializer。这有帮助吗?
关于java - jackson 中用于枚举的自定义xml解串器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62738568/