你好,我需要配置fastxml.Jackson序列化程序作为默认的JAXB序列化程序工作。杰克逊XML序列化XMLElementRef名称
我有以下的情况下,两个类:
@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);
我需要配置ObjectMapper杰克逊串行产生以下XML
<elA>
<elB></elB>
<elB></elB>
</elA>
但我得到这个:
<A>
<bs></bs>
<bs></bs>
</A>
我该如何配置Object Mapper才能获得预期的结果?谢谢。
我不能更改类和注解,因为这是框架的一部分。
我能影响的唯一东西是ObjectMapper和Jackson配置。
我有一个框架与类A和B和相应的注释。我既不能改变课程,也不能改变他们的注释。我需要配置ObjectMapper或jackson配置,它可以像JAXB一样识别注释。 – Michael