[java] 자바에서 JSON 데이터의 중첩된 객체 다루기

JSON(JavaScript Object Notation)은 자바스크립트를 위한 데이터 형식이기 때문에 자바에서 JSON 데이터를 다루기 위해서는 추가적인 라이브러리가 필요합니다. 그 중에서 가장 인기 있는 라이브러리는 Jackson이며, 이를 사용하여 중첩된 JSON 객체를 다루는 방법을 살펴보겠습니다.

Jackson 라이브러리 추가하기

먼저 Jackson 라이브러리를 프로젝트에 추가해야 합니다. 일반적으로 Maven, Gradle 등의 의존성 관리 도구를 사용하여 다음과 같이 추가할 수 있습니다.

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

중첩된 JSON 객체 다루기

다음은 JSON 데이터의 예시입니다.

{
    "name": "John Doe",
    "age": 30,
    "address": {
        "street": "123 Main St",
        "city": "New York"
    }
}

Java에서는 이 JSON 데이터를 JSONObject를 사용하여 다룰 수 있습니다. 다음은 예시 코드입니다.

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

public class JsonExample {
    public static void main(String[] args) {
        String json = "{\"name\":\"John Doe\",\"age\":30,\"address\":{\"street\":\"123 Main St\",\"city\":\"New York\"}}";

        try {
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode rootNode = objectMapper.readTree(json);
            
            String name = rootNode.get("name").asText();
            int age = rootNode.get("age").asInt();
            String street = rootNode.get("address").get("street").asText();
            String city = rootNode.get("address").get("city").asText();
            
            System.out.println("Name: " + name);
            System.out.println("Age: " + age);
            System.out.println("Street: " + street);
            System.out.println("City: " + city);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 코드에서는 ObjectMapper를 사용하여 JSON 문자열을 JsonNode로 변환하고, JsonNodeget 메서드를 통해 필요한 데이터를 추출하고 있습니다. 결과적으로 다음과 같은 출력이 나타납니다.

Name: John Doe
Age: 30
Street: 123 Main St
City: New York

이와 같은 방법으로 자바에서 중첩된 JSON 객체를 다룰 수 있습니다.

추가적인 작업

위의 예시는 JSON 문자열을 바로 처리하는 방법을 보여주고 있습니다. 실제로는 주로 HTTP 요청을 통해 얻은 JSON 응답을 다루는 경우가 많기 때문에, HTTP 클라이언트와의 연동 또는 파일에서 JSON 데이터를 읽어오는 방법 등 추가적인 작업을 수행해야 할 수도 있습니다. 애플리케이션의 요구사항에 따라 더욱 복잡한 JSON 다루기 기능을 구현해야 할 수도 있으므로, 필요에 따라 공식 문서나 다른 참고 자료를 참고하여 작업을 진행하시면 됩니다.

참고 자료