Lors du développement de services REST à l'aide de Spring MVC, j'aimerais rendre JSON "assez imprimé" en développement mais normal (espaces blancs réduits) en production.
Réponses
Trop de publicités?
Swato
Points
513
Lorsque vous utilisez Jackson 2.0.0, vous pouvez le faire d'une manière que Les voulait. J'utilise actuellement RC3 et la configuration semble fonctionner comme prévu.
ObjectMapper jacksonMapper = new ObjectMapper();
jacksonMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
traduit
{"foo":"foo","bar":{"field1":"field1","field2":"field2"}}
dans
{
"foo" : "foo",
"bar" : {
"field1" : "field1",
"field2" : "field2"
}
}
MattJ
Points
61
Puis-je suggérer cette approche, elle est valable avec Spring 4.0.x et peut-être avec des versions plus anciennes.
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import java.util.List;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper());
return mappingJackson2HttpMessageConverter;
}
@Bean
public ObjectMapper objectMapper() {
ObjectMapper objMapper = new ObjectMapper();
objMapper.enable(SerializationFeature.INDENT_OUTPUT);
return objMapper;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
converters.add(mappingJackson2HttpMessageConverter());
}
}
Merci à Willie Wheeler pour la solution : le blog Spring de Willie Wheeler