2016-06-09 116 views
1

我想在我的Spring(4.2.6)MVC控制器中配置我的Jackson(2.7.4)以縮進輸出(漂亮打印)。在彈簧配置中設置對象映射器SerializationFeature

我有控制器@ResponseBody當然轉換爲JSON。我正在使用一個context.xml文件。我有這個至今:在ObjectMapper的

<mvc:annotation-driven> 
    <mvc:message-converters register-defaults="true"> 
     <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
      <property name="objectMapper"> 
       <bean class="com.fasterxml.jackson.databind.ObjectMapper"> 
        <!--- WHAT GOES HERE --> 
       </bean> 
      </property> 
     </bean> 
    </mvc:message-converters> 
</mvc:annotation-driven> 

我想設置配置(SerializationFeature樓布爾州)這樣的:

configure(SerializationFeature.INDENT_OUTPUT, TRUE) 

如何我在春天的背景下做到這一點?

回答

2

您可以使用Jackson2ObjectMapperFactoryBean配置ObjectMapper實例

<property name="objectMapper"> 
    <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean" 
     p:failOnEmptyBeans="false" 
     p:indentOutput="true"> 
     <!-- Other properties --> 
    </bean> 
</property> 
+0

我們有一個贏家! – mmaceachran

0

你正在看這樣的事嗎?

<mvc:annotation-driven> 
    <mvc:message-converters> 
     <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
      <property name="objectMapper"> 
       <bean class="com.kulhade.config.CustomObjectMapper"> 
        <constructor-arg type="com.fasterxml.jackson.databind.SerializationFeature" value="INDENT_OUTPUT"/> 
        <constructor-arg type="boolean" value="true"/> 
       </bean> 
      </property> 
     </bean> 
    </mvc:message-converters> 
</mvc:annotation-driven> 

下面將CustomObjectMapper

public class CustomObjectMapper extends ObjectMapper{ 

    public CustomObjectMapper(SerializationFeature feature,boolean value) { 
     this.configure(feature, value); 
    } 
} 
+0

我收到此錯誤:Bean屬性 'featuresToEnable' 不是可寫或具有無效的setter方法。 setter的參數類型是否與getter的返回類型相匹配? – mmaceachran

+0

@mmaceachran我編輯了代碼。請檢查它。 –

+0

完全相同的錯誤 – mmaceachran