1. @JsonInclude 정의
@JsonInclude는 Jackson 라이브러리에서 제공하는 애노테이션으로, JSON 직렬화 시 특정 속성이나 필드의 포함 여부를 제어합니다. 이를 사용하여 객체의 필드가 null인 경우나, 빈 값인 경우 해당 필드를 JSON 응답에서 제외할 수 있습니다.
주로 불필요한 데이터를 제외하고, 응답 크기를 최적화하기 위해 사용됩니다.
2. @JsonInclude 사용하는 이유
- 불필요한 데이터 제외:
- 기본적으로 객체의 속성이 null이거나 빈 값일 때 이를 JSON에 포함시키지 않음으로써, 응답 데이터 크기를 줄이고 효율성을 높입니다.
- 예를 들어, null 값인 필드는 API 응답에 포함되지 않게 하여 클라이언트가 불필요한 null 값을 처리하지 않게 할 수 있습니다.
- 응답 최적화:
- 조건에 맞는 필드만 포함시켜 서버에서 클라이언트로 전송되는 데이터를 더 적게 만들 수 있습니다.
클라이언트 측에서 처리할 데이터가 최소화되어 성능이 최적화됩니다.
- 조건에 맞는 필드만 포함시켜 서버에서 클라이언트로 전송되는 데이터를 더 적게 만들 수 있습니다.
- 유연한 필드 처리:
- @JsonInclude를 사용하여 필드에 대해 세밀한 조건을 설정할 수 있습니다. 예를 들어, null 값만 제외하거나 빈 문자열을 제외할 수도 있습니다.
3. @JsonInclude 사용하는 방법
1. 기본 사용법: null 값 제외
- @JsonInclude(JsonInclude.Include.NON_NULL)을 사용하면 null 값인 필드는 JSON 응답에서 제외됩니다.
@JsonInclude(JsonInclude.Include.NON_NULL) // null 값 제외
public class Person {
private String name;
private Integer age;
// 생성자, getter, setter
}
// @JsonInclude를 설정하면, name이나 age가 null일 경우 해당 필드는 JSON 응답에서 제외
2. 다양한 포함 조건 설정
@JsonInclude는 여러 가지 포함 조건을 설정할 수 있습니다:
예를 들어, 빈 컬렉션이나 빈 문자열도 제외하고 싶다면 NON_EMPTY를 사용합니다.
- JsonInclude.Include.ALWAYS: 모든 필드를 포함 (기본값)
- JsonInclude.Include.NON_NULL: null인 필드는 제외
- JsonInclude.Include.NON_EMPTY: 빈 컬렉션이나 빈 문자열도 제외
- JsonInclude.Include.NON_DEFAULT: 기본값(예: 0, false, "")인 필드는 제외
@JsonInclude(JsonInclude.Include.NON_EMPTY) // 빈 값도 제외
public class Product {
private String name;
private List<String> features;
// 생성자, getter, setter
}
3. 클래스 레벨에서 설정하기
- @JsonInclude는 클래스 레벨에서도 사용이 가능하여, 클래스 내 모든 필드에 동일한 포함 조건을 적용할 수 있습니다.
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Car {
private String make;
private String model;
private Integer year;
// 생성자, getter, setter
}
@JsonInclude를 사용하면 불필요한 데이터를 제외하고, JSON 응답을 최적화할 수 있으며, 필요한 데이터만 포함하여 효율적으로 처리할 수 있습니다.
출처: chat g pt
'개발 > SpringBoot' 카테고리의 다른 글
JWT 토큰 발행 받기 (0) | 2024.11.08 |
---|---|
Throwable cause, Throwable (1) | 2024.11.07 |
Builder (0) | 2024.11.07 |
Enum (1) | 2024.11.07 |
@JsonFormat (0) | 2024.11.07 |