[java] Gson 라이브러리에서 null 값을 다루는 방법은?

Gson은 자바 객체를 JSON 형식으로 직렬화하고, JSON을 자바 객체로 역직렬화하는 데 사용되는 라이브러리입니다. Gson을 사용하다 보면 가끔 null 값을 처리해야 할 때가 있습니다. 이번 글에서는 Gson 라이브러리에서 null 값을 다루는 방법에 대해 알아보겠습니다.

1. @SerializedName 어노테이션 사용하기

Gson에서 null 값을 다루는 가장 간단한 방법은 @SerializedName 어노테이션을 사용하는 것입니다. 해당 어노테이션은 필드 또는 메소드에 적용하여 JSON에서 사용되는 실제 이름과 매핑합니다. 만약 해당 필드가 null이면 Gson은 기본적으로 무시합니다.

아래는 @SerializedName 어노테이션을 사용하여 null 값을 다루는 예시입니다:

import com.google.gson.annotations.SerializedName;

public class User {
    @SerializedName(value = "name", alternate = "fullName")
    private String name;

    public String getName() {
        return name;
    }
}

위의 예시에서 name 필드는 JSON에서 "name" 또는 "fullName"과 매핑됩니다. 만약 JSON에서 해당 값이 null이라면, name 필드는 null 값을 가지게 됩니다.

2. GsonBuilder에서 null 값 허용하기

GsonBuilder는 Gson을 커스터마이징하는 데 사용되는 클래스입니다. GsonBuilder를 사용하여 null 값을 허용할 수 있습니다.

아래는 null 값을 허용하는 GsonBuilder 사용하는 예시입니다:

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class Main {
    public static void main(String[] args) {
        Gson gson = new GsonBuilder().serializeNulls().create();
        
        User user = new User();
        user.setName(null);
        
        String json = gson.toJson(user);
        System.out.println(json);
    }
}

위의 예시에서 serializeNulls() 메소드를 호출하여 GsonBuilder에서 null 값을 허용하도록 설정합니다. 이후 toJson() 메소드를 호출하여 JSON 문자열로 변환할 때, null 값도 포함됩니다.

결론

이 글에서는 Gson 라이브러리에서 null 값을 다루는 방법에 대해 알아보았습니다. @SerializedName 어노테이션을 사용하거나 GsonBuilder를 커스터마이징하여 null 값을 다룰 수 있습니다. Gson을 사용할 때 null 값을 올바르게 처리하면 코드의 가독성과 유지보수성이 향상될 것입니다.

참고 자료