Jackson, null 필드 무시하기

들어가며

API를 만들때,백단에서 프론트단에 데이터를ㄹ 넘길 때, 객체 필드값이 null인 경우에 해당 필드를 보여주지 않아야 하는 경우가 있다. 이 경우에서 지역적으로 혹은 전역적으로 설정하는 방법에 대해서 알아보자!

1. 예제 코드

public class Account {
    private String name;
    private int age;
}
public void create_account_null_test(){
    Account account = new Account();
    account.setName(null);
    account.setAge(32);

    System.out.println(objectMapper.writeValueAsString(account));
}

다음과 같이 null 값의 해당하는 name 프로퍼티가 결과로 나온다.

{"name":null,"age":32}

2. 지역적으로 처리

@JsonInclude(JsonInclude.Include.NON_NULL)
public class Account {

    //@JsonInclude(JsonInclude.Include.NON_NULL) //클래스 또는 해당 프로퍼티에 붙여준다.
    private String name;
    private int age;
}

3. 전역적으로 설정하는 방법

@Configuration
public class JacksonConfiguration {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        return objectMapper;
    }
}

4. 참조