Reputation: 302
Can anyone tell me what are the differences between these objects? When I use first one spring acts different to the second one, although they nearly configure the same.
Both are configured in my WebMvcConfigurerAdapter. When i should use which one to configure JSON-Serialization and JSON-Deserialization?
My code:
@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
objectMapper.setSerializationInclusion(Include.ALWAYS);
jsonConverter.setObjectMapper(objectMapper);
return jsonConverter;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.propertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
builder.serializationInclusion(Include.ALWAYS);
builder.failOnEmptyBeans(false);
builder.failOnUnknownProperties(false);
builder.indentOutput(true).dateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm"));
converters.add(new MappingJackson2HttpMessageConverter(builder.build()));
}
Upvotes: 0
Views: 2804
Reputation: 27496
You need to define MappingJackson2HttpMessageConverter
in order to serialize and deserialize your JSON input. Jackson uses class ObjectMapper
to convert JSON to Java objects and vice versa, so Jackson2ObjectMapperBuilder
is just a convenient class which uses Builder pattern to build ObjectMapper
for you which can be later injected into the converter.
Upvotes: 2