2014-10-01 123 views
1

使用Spring Boot 1.1.6.RELEASE我無法從我的MVC控制器獲取JSON到漂亮的打印內容 - 應該花費不到一分鐘的時間(並且我們在之前的Spring中配置了無數次項目)需要數小時。Spring Boot忽略jsonPrettyPrint = true

我已經試過各種事情,包括:

1)使用application.properties

http.mappers.jsonPrettyPrint=true 

的記錄自動配置已創建我自己的傑克遜例如

沒有影響

2)

@Bean 
MappingJackson2HttpMessageConverter jacksonMessageConverter() { 
    MappingJackson2HttpMessageConverter mc = ... 
    mc.setPrettyPrint(**true**); 
    return mc; 
} 

沒有效果

3)注入容器ObjectMapper並配置它

@Inject ObjectMapper objectMapper; 
objectMapper.enable(SerializationFeature.INDENT_OUTPUT); 

objectMapper.withDefaultPrettyPrinter(); 

兩者沒有任何效果

4)關閉彈簧致動器(如果它被重寫配置)

沒有效果

5)檢查,雙重檢查,三重檢查我打電話給正確的主機,關閉確認連接被拒絕,改變輸出確認碼是我正在運行的代碼

仍然沒有辦法配置JSON漂亮打印 - 有誰見過這個,它可能與Spring IO(1.0.2.RELEASE)或Jackson(fasterxml jackson-core 2.3.4)中的副作用有關?

回答

2

你試試這樣說:

@Configuration 
public class TimesheetMvcConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { 

     StringHttpMessageConverter stringConverter = new StringHttpMessageConverter(); 
     stringConverter.setWriteAcceptCharset(false); 
     converters.add(stringConverter); 

     converters.add(new ByteArrayHttpMessageConverter()); 
     converters.add(new ResourceHttpMessageConverter()); 
     converters.add(new SourceHttpMessageConverter<Source>()); 
     converters.add(new AllEncompassingFormHttpMessageConverter()); 

     converters.add(jackson2Converter()); 
    } 

    @Bean 
    public MappingJackson2HttpMessageConverter jackson2Converter() { 
     MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); 
     converter.setObjectMapper(objectMapper()); 
     return converter; 
    } 

    @Bean 
    public ObjectMapper objectMapper() { 
     ObjectMapper objectMapper = new ObjectMapper(); 
     objectMapper.enable(SerializationFeature.INDENT_OUTPUT); 
     return objectMapper; 
    } 
} 
相關問題