개발/Spring

@JsonInclude 애너테이션 사용법

이쪽저쪽살짝 2023. 4. 2. 19:42
반응형

@JsonInclude는 Jackson 라이브러리에서 제공하는 어노테이션 중 하나로, 객체를 JSON으로 직렬화할 때 특정 조건에 따라서 포함할 필드를 결정할 수 있게 해줍니다.

@JsonInclude를 사용하면 객체를 JSON으로 직렬화할 때, 포함할 필드를 결정할 수 있습니다. 예를 들어, 일부 필드가 null이거나 비어있을 경우 해당 필드를 제외하고 직렬화할 수 있습니다. 또는 특정 조건에 따라 필드를 포함하거나 제외할 수도 있습니다.

@JsonInclude를 사용하기 위해서는 다음과 같은 방법을 따릅니다.

1. Jackson 라이브러리를 프로젝트에 추가합니다. 예를 들어, Maven을 사용하는 경우 pom.xml 파일에 다음과 같이 추가합니다.

 

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson.version}</version>
</dependency>

2. @JsonInclude 어노테이션을 필드 또는 클래스에 추가합니다. 이 때, 어노테이션의 value 속성을 사용하여 포함할 필드를 결정합니다. 예를 들어, 다음과 같이 사용할 수 있습니다.

@JsonInclude(JsonInclude.Include.NON_NULL)
public class Person {
    private String name;
    private Integer age;
    private String address;
    // getters and setters
}

위의 예제에서는 @JsonInclude 어노테이션의 value 속성을 JsonInclude.Include.NON_NULL로 설정하여, null인 필드는 직렬화하지 않도록 설정하였습니다.

3. ObjectMapper를 사용하여 객체를 JSON으로 직렬화합니다. 이 때, ObjectMapper의 writeValueAsString() 메서드를 사용하면 객체를 JSON 문자열로 직렬화할 수 있습니다.

ObjectMapper mapper = new ObjectMapper();
Person person = new Person();
person.setName("John");
person.setAge(30);
String json = mapper.writeValueAsString(person);

위의 예제에서는 ObjectMapper를 사용하여 Person 객체를 JSON 문자열로 직렬화하였습니다. 이 때, @JsonInclude 어노테이션에 따라 null인 필드는 제외하고 직렬화됩니다.

@JsonInclude를 사용하면 객체를 JSON으로 직렬화할 때 포함할 필드를 결정할 수 있어서, JSON 문자열의 크기를 줄일 수 있고, 불필요한 정보를 제외할 수 있어서 보안성을 높일 수 있습니다.

반응형