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_emptyFarklı 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_nulldate-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=trueproperty-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_CASEserialization.indent-out
spring.jackson.serialization.indent-output=trueNormalde Java Date sınıfı şöyle yazar
"timestamp": "2019-02-12T13:33:26.540+0000",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