>Java >java지도 시간 >Jackson 직렬화 중에 Null 필드 값을 억제하려면 어떻게 해야 합니까?

Jackson 직렬화 중에 Null 필드 값을 억제하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-17 17:23:11173검색

How Can I Suppress Null Field Values During Jackson Serialization?

Jackson 직렬화에서 Null 필드 값 처리

인기 있는 Java 직렬화 라이브러리인 Jackson은 직렬화 동작을 맞춤화하기 위한 다양한 구성 옵션을 제공합니다. 일반적인 시나리오 중 하나는 null인 필드 값의 직렬화를 억제하는 것입니다. 이렇게 하면 null이 아닌 속성만 직렬화된 출력에 포함됩니다.

Jackson에서 Null 값 억제를 구성

Jackson에게 null을 무시하도록 지시하는 두 가지 기본 접근 방식이 있습니다. 직렬화 중 필드 값

1. SerializationInclusion 사용:

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

이 전역 구성은 ObjectMapper에서 처리되는 모든 클래스의 모든 필드에 적용됩니다. null 값이 있는 모든 필드가 직렬화된 출력에서 ​​생략되도록 보장합니다.

2. @JsonInclude 주석 사용:

@JsonInclude(Include.NON_NULL)
public class SomeClass {
    private String someValue;
}

@JsonInclude 주석을 클래스 또는 getter 메서드에 적용하면 특정 속성 또는 하위 클래스에 대한 직렬화 동작을 지정할 수 있습니다. include.NON_NULL을 설정하면 해당 필드에 대해 null이 아닌 값만 직렬화되어야 함을 나타냅니다.

대체 접근 방식

또는 @JsonInclude 주석을 사용할 수 있습니다. 특정 속성에 대한 getter 메서드에서 해당 값이 아닌 경우에만 속성을 조건부로 직렬화합니다. null.

@JsonInclude(value = JsonInclude.Include.NON_NULL, condition = JsonInclude.Include.Condition.NON_NULL)
public String getSomeValue() {
    return someValue;
}

추가 고려 사항

이러한 구성은 역직렬화 프로세스에 영향을 주지 않습니다. 역직렬화 중에 null 값이 발견되면 해당 필드에 계속 설정됩니다. 역직렬화 동작을 제어하려면 @JsonIgnoreProperties 및 @JsonIgnore에 대한 Jackson 설명서를 참조하세요.

위 내용은 Jackson 직렬화 중에 Null 필드 값을 억제하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.