programing

스프링 부트 1.2.3의 경우 JSON 시리얼라이제이션에서 ignore null 값을 설정하려면 어떻게 해야 합니까?

closeapi 2023. 3. 2. 22:16
반응형

스프링 부트 1.2.3의 경우 JSON 시리얼라이제이션에서 ignore null 값을 설정하려면 어떻게 해야 합니까?

Spring Boot 1.2.3에서는 속성 파일을 통해 잭슨 오브젝트 맵퍼를 커스터마이즈할 수 있습니다.그러나 오브젝트를 JSON 문자열로 시리얼화할 때 잭슨 ignore null 값을 설정할 수 있는 속성을 찾을 수 없었습니다.

spring.jackson.deserialization.*= # see Jackson's DeserializationFeature
spring.jackson.generator.*= # see Jackson's JsonGenerator.Feature
spring.jackson.mapper.*= # see Jackson's MapperFeature
spring.jackson.parser.*= # see Jackson's JsonParser.Feature
spring.jackson.serialization.*=

다음과 같은 동일한 코드를 아카이브하고 싶다.

ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);

다음 행을 에 추가합니다.application.properties파일.

spring.spring.default-default-spring=non_n울

Jackson 2.7 이전 버전의 경우:

spring.2011년 봄serialization-syslog=non_null

이것은 추천을 받기 전에 좋은 해결책이었습니다.@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)

하지만 이제 다음을 사용해야 합니다.

@JsonInclude(JsonInclude.Include.NON_NULL) public class ClassName { ...

https://fasterxml.github.io/jackson-annotations/javadoc/2.7/com/fasterxml/jackson/annotation/JsonInclude.Include.html 를 참조해 주세요.

Spring Boot 1.4.x의 경우 application.properties에 다음 행을 포함할 수 있습니다.

spring.jackson.default-property-inclusion=non_null

이것은 Spring Boot 1.3.0의 확장판입니다.

따라서 유감스럽게도 1.2.3에서 프로그래밍 방식으로 구성해야 합니다.

@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class Shop {
    //...
}

학급 전체,

@JsonInclude(JsonInclude.Include.NON_NULL)
public class MyModel { .... }

자산 전체:

public class MyModel {   
    .....

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String myProperty;

    .....
}
  @Bean
  public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder mapperBuilder) {
    return mapperBuilder.build().setSerializationInclusion(Include.NON_NULL);
  }

그것은 나에게 효과가 있다.

언급URL : https://stackoverflow.com/questions/30042507/for-spring-boot-1-2-3-how-to-set-ignore-null-value-in-json-serialization

반응형