Java 接口的Jackson序列化
我尝试使用Jackson数据类型xml将java对象序列化为xml。这样做时,我有一个界面,例如:Java 接口的Jackson序列化,java,xml,serialization,jackson,Java,Xml,Serialization,Jackson,我尝试使用Jackson数据类型xml将java对象序列化为xml。这样做时,我有一个界面,例如: interface SpecificationType {...} class FreeText implements SpecificationType {...} class Selection implements SpecificationType {...} 由于此接口,我有另一个类将其用作字段: class Question { private final Specif
interface SpecificationType {...}
class FreeText implements SpecificationType {...}
class Selection implements SpecificationType {...}
由于此接口,我有另一个类将其用作字段:
class Question {
private final SpecificationType specificationType;
....
}
问题是,当我将其序列化为XML时,当我希望它反映具体的类时,标记将是SpecificationType
(例如)。有没有办法让杰克逊做到这一点
例如
我得到:
<SpecificationType>...</SpecificationType>
。。。
我想:
<FreeText>...</FreeText>
。。。
我认为,实现这一点的唯一方法是启用多态类型。因此,您可以尝试在有问题的属性上添加@JsonProperty
,包含类型为.WRAPPER\u OBJECT。
然后,这将使用“type id”作为元素,这是您在这里想要的。但有一件事我不能100%肯定,如果不尝试,是否会有一个额外的元素在那里;尝试一下应该很容易,看看结果如何。感谢您的快速响应!OP是我的合作伙伴;我们明天再看。@mattklamp太好了!谢谢你的核实。