簡體   English   中英

在Spring配置中設置Object Mapper SerializationFeature

[英]set Object Mapper SerializationFeature in spring configuration

我想將我的Jackson(2.7.4)配置為在Spring(4.2.6)MVC控制器中縮進輸出(漂亮的打印)。

我有具有@ResponseBody的控制器,該控制器當然可以轉換為JSON。 我正在使用context.xml文件。 到目前為止,我有:

    <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>

我想像這樣設置ObjectMapper的configure(SerializationFeature f,boolean state):

configure(SerializationFeature.INDENT_OUTPUT, TRUE)

在春季,我該怎么做?

您可以使用Jackson2ObjectMapperFactoryBean配置ObjectMapper實例

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

你看起來像這樣嗎

<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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM