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 값을 올바르게 처리하면 코드의 가독성과 유지보수성이 향상될 것입니다.
참고 자료
- Gson GitHub 페이지: https://github.com/google/gson
- Gson 문서: https://sites.google.com/site/gson/gson-user-guide