[Java] DTO to Json 시 null값 제외시키는 방법

2023-05-08


사진: Unsplash 의 NEOM


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"}

메인 이미지 출처 : 사진: UnsplashNEOM