[java] Jackson에서 사용되는 주요 어노테이션은 어떤 것이 있나요?
Jackson은 자바 객체를 JSON으로 변환하고, JSON을 자바 객체로 변환하기 위한 라이브러리입니다. Jackson에서는 다양한 어노테이션을 사용하여 객체와 JSON 간의 매핑을 정의할 수 있습니다.
주요 Jackson 어노테이션은 다음과 같습니다:
@JsonProperty
: 필드 또는 메소드에 사용되며, JSON의 속성 이름과 자바 객체의 속성 이름 간의 매핑을 지정합니다.
public class MyObject {
@JsonProperty("name")
private String fullName;
// getter, setter
}
@JsonAutoDetect
: 클래스 또는 메소드에 사용되며, 객체의 필드 및 메소드의 시리얼라이즈(직렬화) 기준을 설정합니다. 기본적으로 모든 public 메소드와 필드가 시리얼라이즈 대상입니다.
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
public class MyObject {
private String name;
private int age;
// getter, setter
}
@JsonIgnore
: 필드 또는 메소드에 사용되며, 해당 속성을 JSON 변환에서 제외합니다.
public class MyObject {
private String name;
@JsonIgnore
private int age;
// getter, setter
}
@JsonFormat
: 날짜 및 시간 형식을 지정하는데 사용되며, 객체의 속성을 JSON으로 변환할 때 사용할 형식을 지정합니다.
public class MyObject {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy")
private LocalDate birthDate;
// getter, setter
}
이 외에도 Jackson은 다양한 어노테이션을 제공하며, 사용자 정의 어노테이션을 생성하여 매핑 규칙을 정의할 수도 있습니다. 자세한 내용은 Jackson 공식 문서를 참조하시기 바랍니다.
참고 자료: