[java] Gson 라이브러리의 추가적인 기능은?
-
어노테이션을 활용한 직렬화 및 역직렬화 Gson은 어노테이션을 사용하여 직렬화와 역직렬화를 커스터마이즈할 수 있습니다.
@SerializedName
어노테이션을 사용하여 JSON 필드 이름과 자바 객체의 필드 이름을 매핑할 수 있습니다.public class Person { @SerializedName("name") private String fullName; private int age; // getters and setters }
-
Null 값 처리 Gson은 JSON 데이터에서 null 값이 포함된 경우, 자동으로 객체의 필드를 null로 설정합니다. 또한, 객체를 JSON으로 변환할 때 null이 아닌 필드만을 포함하도록 설정할 수 있습니다.
Gson gson = new GsonBuilder().serializeNulls().create();
-
날짜 형식 처리 Gson은 Java의 Date 및 Calendar 객체와 JSON 사이의 날짜 형식 변환도 지원합니다.
DateFormat
클래스를 사용하여 날짜 형식을 커스터마이즈할 수 있습니다.Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
-
제외 및 인클루드 필드 설정 Gson은 특정 필드를 제외하거나, 특정 필드만을 직렬화 및 역직렬화하는 기능도 제공합니다.
@Expose
어노테이션을 사용하여 필드의 직렬화 여부를 설정할 수 있습니다.public class Person { @Expose private String name; @Expose(serialize = false) private int age; // getters and setters }
-
커스텀 직렬화 및 역직렬화 Gson은
JsonSerializer
및JsonDeserializer
인터페이스를 구현하여 커스텀 직렬화와 역직렬화를 지원합니다. 이를 통해 복잡한 데이터 구조나 특수한 형식의 JSON 데이터를 처리할 수 있습니다.JsonSerializer<Date> dateSerializer = (src, typeOfSrc, context) -> { DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); return new JsonPrimitive(dateFormat.format(src)); }; Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, dateSerializer).create();
Gson은 JSON과 자바 객체 간의 간단하고 편리한 변환을 제공하는 만큼, 다양한 추가 기능도 지원합니다. 필요에 따라 Gson의 공식 문서를 참고하여 더 많은 기능을 활용할 수 있습니다.