Jackson 직렬화에서 Null 필드 값 처리
Java 직렬화 라이브러리인 Jackson은 직렬화 동작을 맞춤화하기 위한 다양한 구성 옵션을 제공합니다. 일반적인 시나리오 중 하나는 null인 필드 값의 직렬화를 억제하는 것입니다. 이렇게 하면 null이 아닌 속성만 직렬화된 출력에 포함됩니다.
Null 값 억제를 위해 Jackson 구성
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 설명서를 참조하세요.부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3