Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 接口的Jackson序列化_Java_Xml_Serialization_Jackson - Fatal编程技术网

Java 接口的Jackson序列化

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

我尝试使用Jackson数据类型xml将java对象序列化为xml。这样做时,我有一个界面,例如:

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太好了!谢谢你的核实。