Giriş
Jackson ayarlarını özelleştirmek için 3 tane yöntem ver
1. application.properties ile özeleştirmek
2. Jackson2ObjectMapperBuilderCustomizer ile özeleştirmek
3. Jackson2ObjectMapperBuilder ile özeleştirmek
4. ObjectMapper nesnesi direkt yaratılır ve özelleştirilir
Yöntem 2
Bu sınıfı kullanmak için SpringMVC projesinde şöyle yaparız.
@Configuration
@EnableWebMvc
public class WebConfiguration extends WebMvcConfigurerAdapter {
... other configurations
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
...
converters.add(new MappingJackson2HttpMessageConverter(builder.build()));
converters.add(new MappingJackson2XmlHttpMessageConverter(builder
.createXmlMapper(true).build()));
}
}
Yöntem 3SpringBoot projesinde şöyle yaparız.
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Bean
public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
...
return objectMapper;
}
}
constructorŞöyle yaparız.
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
configure metoduŞöyle yaparız
@Bean
public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
return objectMapper;
}
dateFormat metoduŞöyle yaparız.
builder.dateFormat(new SimpleDateFormat("yyyy-MM-dd"));
indentOutput metoduŞöyle yaparız.
builder.indentOutput(true);
modulesToInstall metoduŞöyle yaparız.
@Bean
public Jackson2ObjectMapperBuilder configureObjectMapper() {
return new Jackson2ObjectMapperBuilder()
.modulesToInstall(Hibernate5Module.class);
}
propertyNamingStrategyÖrnek
Şöyle yaparız.
Örnek
builder.propertyNamingStrategy
(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
Örnek
Şöyle yaparız
@Bean
public Jackson2ObjectMapperBuilder jacksonBuilder() {
Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder();
b.propertyNamingStrategy(PropertyNamingStrategy.LOWER_CAMEL_CASE);
return b;
}
serializationInclusion metodu
Şöyle yaparız
@Bean
public Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder() {
return new Jackson2ObjectMapperBuilder()
.serializationInclusion(JsonInclude.Include.NON_NULL);
}
Örnek
Hiç yorum yok:
Yorum Gönder