[java] Jackson의 주요 어노테이션: @JsonCreator

Jackson은 Java 객체와 JSON 데이터 간의 변환을 지원하는 라이브러리입니다. @JsonCreator 어노테이션은 주로 생성자에 적용되며, Jackson이 JSON 데이터를 객체로 변환할 때 사용되는 생성자라는 것을 나타냅니다.

@JsonCreator 어노테이션의 활용

@JsonCreator 어노테이션은 다음 상황에서 유용하게 활용될 수 있습니다:

  1. 다중 생성자 지원: 클래스에 여러 개의 생성자가 있는 경우, Jackson은 디폴트 생성자 외에도 @JsonCreator 어노테이션이 적용된 생성자를 활용하여 JSON 데이터를 객체로 변환합니다.

  2. 생성자 파라미터 명시적 지정: @JsonCreator 어노테이션을 사용하면 생성자의 파라미터에 @JsonProperty 어노테이션을 사용하지 않아도 됩니다. 생성자의 파라미터와 JSON 데이터의 필드명이 일치하지 않더라도, @JsonCreator를 통해 매핑할 수 있습니다.

@JsonCreator 어노테이션 예시

아래의 예시는 @JsonCreator 어노테이션을 사용한 클래스의 생성자입니다.

public class MyPojo {
    private String name;
    private int age;

    @JsonCreator
    public MyPojo(@JsonProperty("name") String name, @JsonProperty("age") int age) {
        this.name = name;
        this.age = age;
    }

    // Getters and Setters
}

위 코드에서 @JsonCreator 어노테이션은 MyPojo 클래스의 생성자에 적용되어 있습니다. @JsonProperty 어노테이션을 사용하여 생성자의 파라미터와 JSON 데이터의 필드를 매핑하고 있음을 알 수 있습니다.

@JsonCreator 어노테이션은 Jackson에서 JSON 데이터를 Java 객체로 변환할 때 유용하게 활용될 수 있는 기능 중 하나입니다.

더 많은 정보는 Jackson 라이브러리 공식 문서를 참고하시기 바랍니다.