带有JaxB批注的Jackson

时间:2018-11-18 10:15:19

标签: java jackson jaxb

我需要使用JaxB注释的杰克逊快速帮助。

我有旧代码,其中有定义了JaxB批注的POJO类

    Class A implements Serializable {@XmlElementRef(name = "specificInfo",
       namespace = "http://www.xx.xx.xx.com/v1",
       type = JAXBElement.class
 )

 protected JAXBElement<? extends SpecificInfo> SpecificInfo; }

有多个类扩展SpecificInfo

A类扩展了SpecificInfo

B类扩展了SpecificInfo

一切都在使用JAXB。 现在,我想使用杰克逊库将xml转换为java。

如何在不修改旧代码的情况下处理继承和反序列化请求?

    JacksonXmlModule xmlModule = new JacksonXmlModule();
    xmlModule.setDefaultUseWrapper(false);
    xmlModule.setDeserializers();

    XmlMapper objectMapper = new XmlMapper(xmlModule);
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    objectMapper.registerModule(new JodaModule());

    objectMapper.registerModule(new JAXBElementModule());
    XmlJaxbAnnotationIntrospector jaxbAnnotationIntrospector = new XmlJaxbAnnotationIntrospector(objectMapper.getTypeFactory());
    objectMapper.registerModule(new JaxbAnnotationModule(jaxbAnnotationIntrospector));

JAXBElementModule-自定义类-

https://github.com/venicegeo/pz-wps/blob/master/pizza_wps_2_0/src/main/java/wps/test/JAXBElementModule.java

0 个答案:

没有答案