【问题标题】:@XmlJavaTypeAdapter not working with Jackson JSON@XmlJavaTypeAdapter 不适用于杰克逊 JSON
【发布时间】:2012-10-08 10:23:18
【问题描述】:

我正在使用 Spring REST 框架和 Jackson JSON

<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
 <property name="objectMapper" ref="customObjectMapper" /> 
 <property name="supportedMediaTypes" value="application/json" />
</bean>
<bean id="customObjectMapper"class="com.rackspace.payment.webapp.utils.JaxbJacksonObjectMapper" />

public class JaxbJacksonObjectMapper extends ObjectMapper {
    @SuppressWarnings("deprecation")
    public JaxbJacksonObjectMapper() {
        final AnnotationIntrospector introspector = new JaxbAnnotationIntrospector();

        this.configure(org.codehaus.jackson.map.DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true);
        super.getDeserializationConfig().withAnnotationIntrospector(introspector);

        this.configure(org.codehaus.jackson.map.SerializationConfig.Feature.WRITE_NULL_PROPERTIES, false);
        this.configure(org.codehaus.jackson.map.SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
        super.getSerializationConfig().withAnnotationIntrospector(introspector);
    }
}


//JXAB element
@XmlAttribute(name = "createDate")
@XmlJavaTypeAdapter(CustomDateAdapter.class)
protected Date createDate;

我面临的问题是,当显示 JSON 输出时,“createDate”元素显示为字符串,但不会调用 xml 适配器类,而它在 XML 输出中工作正常。

我错过了什么?如何调用 JSON 格式的 XmlJavaTypeAdapter。

【问题讨论】:

标签: json spring-mvc jaxb jackson


【解决方案1】:

下面的代码对我有用。

    ObjectMapper objectMapper = new CustomObjectMapper(ENTITY_WITH_ID_DESERIALIZER);

    AnnotationIntrospector primary = new JacksonAnnotationIntrospector();
    AnnotationIntrospector secondary = new JaxbAnnotationIntrospector();
    AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);

    objectMapper.setAnnotationIntrospector(pair);

    objectMapper.configure(DeserializationConfig.Feature.USE_ANNOTATIONS, true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 2014-02-12
    • 1970-01-01
    相关资源
    最近更新 更多