2023-05-08
1. 방법
라이브러리 정보를 추가한다.
/*
메이븐
*/
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
/*
그레이들
*/
dependencies {
implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3'
}
@JsonInclude 어노테이션을 import 합니다.
import com.fasterxml.jackson.annotation.JsonInclude;
@JsonInclude 어노테이션을 DTO 클래스에 추가합니다.
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MyDTO {
private String name;
private Integer age;
private String email;
// 생성자, 게터, 세터 생략
}
위의 코드에서 @JsonInclude 어노테이션을 사용하여 NON_NULL 옵션을 지정합니다. 이 옵션을 사용하면 DTO 필드값이 null인 경우 해당 필드를 JSON 객체에 포함시키지 않습니다.
DTO 객체를 생성하고 JSON 객체로 변환합니다.
MyDTO dto = new MyDTO("John", null, null);
ObjectMapper mapper = new ObjectMapper();
String jsonStr = mapper.writeValueAsString(dto);
System.out.println(jsonStr);
위의 코드에서 MyDTO 객체의 age와 email 필드값이 null인 상황에서 DTO 객체를 JSON 문자열로 변환하면 해당 필드를 포함하지 않습니다. 출력 결과는 다음과 같습니다.
{"name":"John"}