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
Genel ayarlar şöyle. Yani serialization, deserialization, mapper ve diğer başlıklar altında bir sürü ayar var.
default-property-inclusion
Şöyle yaparız.
deserialization.fail-on-unknown-properties
Json'da object'in istediğinden fazla parametre varsa devreye girer. Varsayılan değer false olduğu için normalde fazla parametre gönderilse bile dikkate alınmaz.
Örnek
Şöyle yaparız.
Şöyle yaparız
Normalde Java Date sınıfı şöyle yazar
timezone Alanı
Şöyle yaparız.
spring.jackson.deserialization.<feature_name>=true|false
spring.jackson.generator.<feature_name>=true|false
spring.jackson.mapper.<feature_name>=true|false
spring.jackson.parser.<feature_name>=true|false
spring.jackson.serialization.<feature_name>=true|false
spring.jackson.default-property-inclusion=always|non_null|non_absent|non_default|non_empty
Farklı bir Kütüphane Kullanmak
Jackson yerine Jsonb kullanmak için şöyle yaparız
spring.mvc.converters.preferred-json-mapper=jsonb
Şöyle yaparız.
spring.data.rest.basePath=/api
server.servlet.context-path=/api
spring.jackson.default-property-inclusion=non_null
date-format
Şöyle yaparız
spring:jackson:serialization:fail-on-empty-beans: falsewrite-dates-as-timestamps: falsedate-format: com.fasterxml.jackson.databind.util.ISO8601DateFormat
Json'da object'in istediğinden fazla parametre varsa devreye girer. Varsayılan değer false olduğu için normalde fazla parametre gönderilse bile dikkate alınmaz.
Örnek
Şöyle yaparız.
spring.jackson.deserialization.fail-on-unknown-properties=true
property-naming-strategy
Bu alan şu değerlerden birisini alabilir
LOWER_CAMEL_CASE
LOWER_CASE
SNAKE_CASE
UPPER_CAMEL_CASE
KEBAB_CASE
Şöyle yaparız
spring.jackson.property-naming-strategy=LOWER_CAMEL_CASE
serialization.indent-out
spring.jackson.serialization.indent-output=true
write-dates-as-timestamps AlanıNormalde Java Date sınıfı şöyle yazar
"timestamp": "2019-02-12T13:33:26.540+0000",
"1550038291" gibi unix timestamp değerini yazmak istersek bu alanı kullanırız.timezone Alanı
Şöyle yaparız.
spring:
jackson:
serialization:
write-dates-as-timestamps: true
write_dates_with_zone_id: true
time-zone: GMT
default-property-inclusion: NON_NULL
Hiç yorum yok:
Yorum Gönder