[英]custom xml deserializer in jackson for enum
我有一个 lib 的枚举,如下所示:
enum class VatRate {
none,
tax10,
tax20
}
我不能修改这个 enum 。 我需要像这样从VatRate
反序列化增值税率:
<testXml>
<vat>vat10</vat>
</testXml>
我知道如何使用 jackson 创建和使用 mixin。 但是如何告诉 jackson 使用外部 function 进行反序列化?
如果您只想自己做:
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 。 这有帮助吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.