[java] Jackson을 사용하여 JSON을 POJO 객체로 변환하는 방법은 무엇인가요?

JSON(JavaScript Object Notation)은 데이터를 표현하기 위한 경량화된 형식으로 널리 사용됩니다. Jackson은 Java에서 JSON 데이터를 처리하기 위한 유명한 라이브러리입니다. 이 라이브러리를 사용하여 JSON 데이터를 POJO(Plain Old Java Object) 객체로 변환하는 방법을 알아보겠습니다.

먼저, Jackson 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 종속성을 추가하십시오.

<dependencies>
  <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.3</version>
  </dependency>
</dependencies>

이제 JSON을 POJO 객체로 변환하는 방법을 살펴보겠습니다. 다음은 예시 JSON 데이터입니다.

{
  "name": "John Doe",
  "age": 30,
  "email": "johndoe@example.com"
}

POJO 클래스를 작성해야 합니다. 예시 JSON의 필드와 동일한 필드를 가진 클래스를 생성합니다.

public class Person {
  private String name;
  private int age;
  private String email;

  // Getters and setters
  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }
}

이제 JSON 데이터를 POJO 객체로 변환하는 코드를 작성해보겠습니다.

import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {
  public static void main(String[] args) {
    String json = "{\"name\": \"John Doe\", \"age\": 30, \"email\": \"johndoe@example.com\"}";

    ObjectMapper objectMapper = new ObjectMapper();
    try {
      Person person = objectMapper.readValue(json, Person.class);
      System.out.println(person.getName()); // John Doe
      System.out.println(person.getAge()); // 30
      System.out.println(person.getEmail()); // johndoe@example.com
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

위의 코드에서는 ObjectMapper 클래스를 사용하여 JSON 데이터를 POJO 객체로 변환합니다. readValue() 메서드는 첫 번째 인자로 변환할 JSON 문자열을, 두 번째 인자로는 변환할 클래스 타입을 받습니다. 변환된 Person 객체의 필드에 접근하여 데이터를 확인할 수 있습니다.

이제 Jackson을 사용하여 JSON을 POJO 객체로 변환하는 방법을 알게 되었습니다. 이를 응용하여 다양한 JSON 데이터를 Java 객체로 변환해보세요.

참고 자료