如何使用Spring ContentNegotiatingViewResolver设置MappingJackson2JsonView使用的默认ObjectMapper的可见性

时间:2014-06-06 15:35:36

标签: json spring jackson

我想做的建议是here,即:

objectMapper.setVisibility(JsonMethod.FIELD, Visibility.ANY);

不幸的是,我的应用程序的Json映射完全用xml完成​​,如下所示:

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
  <property name="contentNegotiationManager" ref="contentNegotiationManager"/>
  <property name="defaultViews">
    <list>
      <bean name="jsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
    </list>
  </property>
</bean>

我不需要自定义的ObjectMapper,我只想设置MappingJackson2JsonView使用的默认ObjectMapper的可见性。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您无法更改ObjectMapper使用的默认MappingJackson2JsonView。它存储在private字段中,并且不存在修改对象的方法。

但是,您可以声明自己的ObjectMapper bean并使用MappingJackson2JsonView#setObjectMapper(ObjectMapper)View使用您的自定义ObjectMapper bean。