[java] Gson 라이브러리의 커스텀 애너테이션 사용 방법은?
Gson은 JSON 데이터를 자바 객체로 변환하거나 자바 객체를 JSON 데이터로 변환하기 위한 유용한 라이브러리입니다. Gson은 기본적으로 자바 객체의 필드 이름과 JSON 데이터의 키 이름을 매핑하여 변환하도록 동작합니다. 하지만 때로는 필드와 키 이름이 서로 다를 경우에 대비하여 커스텀 애너테이션을 사용할 수 있습니다.
커스텀 애너테이션을 사용하여 Gson이 자바 객체를 JSON 데이터로 변환할 때 필드와 키 이름을 정확히 지정할 수 있습니다. 아래는 Gson 커스텀 애너테이션을 사용하는 방법입니다.
- 애너테이션 정의
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface JsonKey { String value(); }
- 애너테이션 적용
public class Person { @JsonKey("name") private String fullName; @JsonKey("age") private int age; // Getters and Setters }
- Gson 사용
import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class Main { public static void main(String[] args) { Person person = new Person(); person.setFullName("John Doe"); person.setAge(30); Gson gson = new GsonBuilder().create(); String json = gson.toJson(person); System.out.println(json); } }
출력 결과:
{"name":"John Doe","age":30}
위와 같이 @JsonKey 애너테이션을 사용하면 Gson이 자바 객체를 JSON 데이터로 변환할 때 필드와 키 이름을 지정할 수 있습니다. 그렇게 함으로써 JSON 데이터와 자바 객체 간의 매핑을 더욱 정확하게 제어할 수 있습니다.
더 많은 Gson 기능과 사용법은 Gson GitHub 저장소 (https://github.com/google/gson)에서 확인할 수 있습니다.