When using Spring MVC for REST, how do you enable Jackson to pretty-print rendered JSON?

后端 未结 10 556
遥遥无期
遥遥无期 2020-12-04 14:25

While developing REST services using Spring MVC, I would like render JSON \'pretty printed\' in development but normal (reduced whitespace) in production.

10条回答
  •  囚心锁ツ
    2020-12-04 14:50

    Based on baeldung this could be a nice idea using java 8:

    @Override
    public void extendMessageConverters(List> converters) {
    
        Optional> converterFound;
           converterFound = converters.stream().filter(c -> c instanceof AbstractJackson2HttpMessageConverter).findFirst();
    
        if (converterFound.isPresent()) {
            final AbstractJackson2HttpMessageConverter converter;
            converter = (AbstractJackson2HttpMessageConverter) converterFound.get();
            converter.getObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
            converter.getObjectMapper().enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
        }
    }
    

提交回复
热议问题