[java] Jackson의 다양한 클래스와 유틸리티 메서드 소개

Jackson은 Java에서 JSON 데이터를 처리하기 위한 강력한 라이브러리입니다. 이 라이브러리는 JSON 데이터를 Java 객체로 매핑하거나 Java 객체를 JSON으로 직렬화하는 데 사용됩니다. Jackson에는 다양한 클래스와 유틸리티 메서드가 있으며, 이를 통해 JSON 데이터를 쉽게 다룰 수 있습니다.

ObjectMapper 클래스

ObjectMapper 클래스는 Jackson 라이브러리의 핵심입니다. 이 클래스는 JSON 데이터를 Java 객체로 변환하거나 Java 객체를 JSON으로 변환하는 데 사용됩니다. 다음은 간단한 예제입니다.

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonExample {
    public static void main(String[] args) {
        // JSON 문자열을 Java 객체로 변환
        String json = "{\"name\":\"John\", \"age\":30}";
        ObjectMapper mapper = new ObjectMapper();
        Person person = mapper.readValue(json, Person.class);

        // Java 객체를 JSON 문자열로 변환
        String jsonString = mapper.writeValueAsString(person);
        System.out.println(jsonString);
    }

    // Person 클래스 정의
    static class Person {
        public String name;
        public int age;
    }
}

위 예제에서 ObjectMapper를 사용하여 JSON 문자열을 Java 객체로 변환하고, Java 객체를 JSON으로 직렬화하는 방법을 보여줍니다.

JsonNode 클래스

JsonNode 클래스는 Jackson에서 JSON 노드를 나타내는 데 사용됩니다. 이 클래스를 사용하여 JSON 데이터의 일부분에 접근하고 조작할 수 있습니다. 다음은 간단한 예제입니다.

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonNodeExample {
    public static void main(String[] args) {
        String json = "{\"name\":\"John\", \"age\":30}";
        ObjectMapper mapper = new ObjectMapper();
        try {
            JsonNode node = mapper.readTree(json);
            String name = node.get("name").asText();
            int age = node.get("age").asInt();
            System.out.println("Name: " + name);
            System.out.println("Age: " + age);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 예제에서 JsonNode를 사용하여 JSON 데이터의 일부분에 접근하고 해당 값을 추출하는 방법을 보여줍니다.

참고 자료