Jackson 라이브러리는 Java 객체를 JSON으로 직렬화하거나 JSON을 Java 객체로 역직렬화하는 데 사용됩니다. Jackson은 강력한 어노테이션 기반 기능을 제공하여 직렬화 및 역직렬화 과정을 사용자화할 수 있습니다.
이 블로그 포스트에서는 Jackson 어노테이션을 사용하여 Java 클래스를 JSON으로 어떻게 직렬화하고, JSON을 다시 Java 객체로 어떻게 역직렬화하는지에 대해 살펴보겠습니다.
1. @JsonProperty 어노테이션
@JsonProperty
어노테이션은 Java 필드를 JSON 속성에 매핑하는 데 사용됩니다. 이 어노테이션을 사용하면 JSON 키 이름과 Java 필드 이름을 매핑할 수 있습니다.
public class User {
@JsonProperty("user_id")
private String userId;
@JsonProperty("first_name")
private String firstName;
// Getters and Setters
}
위의 예제에서 @JsonProperty
어노테이션은 user_id
와 first_name
JSON 속성을 각각 userId
와 firstName
필드에 매핑합니다.
2. @JsonFormat 어노테이션
@JsonFormat
어노테이션은 날짜 및 시간 값을 포맷하는 데 사용됩니다. 이 어노테이션을 사용하여 날짜 형식을 지정할 수 있습니다.
public class Event {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date eventDate;
// Getters and Setters
}
위의 예제에서 @JsonFormat
어노테이션은 eventDate
필드의 날짜 형식을 yyyy-MM-dd HH:mm:ss
로 지정합니다.
3. @JsonIgnore 어노테이션
@JsonIgnore
어노테이션은 특정 필드를 JSON 직렬화 및 역직렬화에서 제외하는 데 사용됩니다.
public class Employee {
private String empId;
private String firstName;
@JsonIgnore
private String password;
// Getters and Setters
}
위의 예제에서 @JsonIgnore
어노테이션은 password
필드를 JSON 직렬화 및 역직렬화에서 제외합니다.
위의 어노테이션들을 사용하여 Jackson을 이용한 직렬화와 역직렬화를 사용자화할 수 있습니다. 어노테이션을 적절히 활용하여 JSON과 Java 객체 간의 변환을 원하는 방향으로 조절할 수 있습니다.