【发布时间】:2016-10-24 08:02:33
【问题描述】:
您好,我需要配置 fastxml.Jackson 序列化器以完全作为默认 JAXB 序列化器工作。
我有以下两个类的案例:
@XmlRootElement(name = "elA")
public class A {
@XmlElementRef
public Collection<B> getBs() {
return this.bs;
}
}
@XmlRootElement(name = "elB")
public class B {
}
我的对象映射器配置如下所示:
XmlMapper objectMapper = new XmlMapper();
JaxbAnnotationModule jaxbAnnotationModule = new JaxbAnnotationModule();
objectMapper.registerModule(jaxbAnnotationModule);
objectMapper.setDefaultUseWrapper(false);
objectMapper.configure(SerializationFeature.INDENT_OUTPUT,true);
objectMapper.configure(SerializationFeature.WRAP_ROOT_VALUE,false);
objectMapper.configure(SerializationFeature.CLOSE_CLOSEABLE, true);
objectMapper.setSerializationInclusion(Include.NON_ABSENT);
JaxbAnnotationIntrospector jaxbAnnotationIntrospector = new XmlJaxbAnnotationIntrospector(objectMapper.getTypeFactory());
objectMapper.setAnnotationIntrospector(jaxbAnnotationIntrospector);
我需要为 Jackson Serializer 配置 ObjectMapper 以生成以下 XML
<elA>
<elB></elB>
<elB></elB>
</elA>
但我明白了:
<A>
<bs></bs>
<bs></bs>
</A>
我应该如何配置 Object Mapper 以获得预期的结果?谢谢你。
我既不能更改类也不能更改注释,因为这是框架的一部分。
我能影响的只有 ObjectMapper 和 Jackson 配置。
【问题讨论】:
-
我有一个包含 A 类和 B 类以及相应注释的框架。我既不能改变类也不能改变它们的注释。我需要配置 ObjectMapper 或 jackson 配置,它以与 JAXB 相同的方式识别注释。
标签: xml serialization jaxb jackson fasterxml