새롭게 공부한 어노테이션 - 2

Chooooo·2023년 12월 12일
0

인턴생활

목록 보기
15/19

😎 @JsonInclude 어노테이션

DTO에 많이 붙어있는 어노테이션인 @JsonInclude에 대해 공부해 보았다.

@JsonInclude 어노테이션은 특정 조건에 해당하는 property를 제외하고 se/deserialize(직렬화) 할 수 있도록 도와준다.

😊 기본 사용법

@JsonInclude 어노테이션은 여러가지 옵션을 제공한다.

JsonInclude.Include.ALWAYS

  • 기본 설정으로, 모든 속성을 JSON에 포함한다.

JsonInclude.Include.NON_NULL

  • null이 아닌 속성만 포함한다.

JsonInclude.Include.NON_EMPTY

  • 비어있지 않은 속성만 포함한다. 이는 문자열, 컬렉션, 배열에 대해 빈 값이나 null이 아닌 경우를 의미한다!!

JsonInclude.Include.NON_DEFAULT

기본값이 아닌 속성만 포함한다. 기본값은 Java에서의 기본값이거나, 클래스 내에서 명시적으로 설정된 값일 수 있다.

@JsonInclude(JsonInclude.Include.NON_NULL)
public class MyModel {
    private String name;
    private Integer age;
    // getters and setters
}
  • 이 예시에서 MyModel 클래스는 null이 아닌 필드만 JSON으로 직렬화한다.

어떨 때 사용?

@JsonInclude 어노테이션은

  • 불필요한 정보의 전송을 줄이고, 결과 JSON의 크기를 최소화 하고자 할 때 사용
  • 클라이언트나 API 사용자에게 중요한 정보만 전달하고 싶을 때
  • 기본값이나 빈 값으로 인해 발생할 수 있는 오해를 방지하고자 할 때

나는 해당 어노테이션을 자주 사용할 것 같다...

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글