[java] 자바에서 JSON 데이터의 중첩된 배열 요소 추출하기

JSON(JavaScript Object Notation)은 데이터를 구조화하여 저장하고 전달하기 위한 일반적인 형식입니다. 중첩된 배열은 JSON 데이터에서 여러 개의 요소를 그룹화하는 데 사용됩니다. 이번 포스트에서는 자바에서 JSON 데이터의 중첩된 배열 요소를 추출하는 방법에 대해 알아보겠습니다.

1. Gson 라이브러리 설치하기

자바에서 JSON 데이터를 다루는 가장 흔한 방법 중 하나는 Gson 라이브러리를 사용하는 것입니다. Gson은 Google에서 제공하는 라이브러리로, JSON 데이터를 자바 객체로 변환하고 vice versa로 변환할 수 있게 해줍니다. Gson 라이브러리를 사용하기 위해 프로젝트에 해당 라이브러리를 추가합니다.

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.7</version>
</dependency>

2. JSON 데이터 파싱하기

JSON 데이터를 파싱하여 자바 객체로 변환하기 위해 Gson을 사용합니다. 다음은 JSON 데이터를 읽어와서 JsonObject로 파싱하는 예제입니다.

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class JsonParserExample {

    public static void main(String[] args) {
        String jsonData = "{\"name\":\"John\",\"age\":30,\"cars\":[{\"model\":\"BMW\",\"year\":2020},{\"model\":\"Audi\",\"year\":2019}]}";
        
        JsonParser parser = new JsonParser();
        JsonObject jsonObject = parser.parse(jsonData).getAsJsonObject();
        
        // 중첩된 배열 요소 추출하기
        JsonObject firstCar = jsonObject.getAsJsonArray("cars").get(0).getAsJsonObject();
        String carModel = firstCar.get("model").getAsString();
        int carYear = firstCar.get("year").getAsInt();
        
        System.out.println("Car Model: " + carModel);
        System.out.println("Car Year: " + carYear);
    }
}

위 예제에서는 JsonParser를 사용하여 JSON 데이터를 JsonObject로 파싱한 후, getAsJsonArray(), getAsJsonObject(), getAsString(), getAsInt() 등의 메서드를 사용하여 중첩된 배열 요소를 추출하고 출력합니다.

3. 결과 확인하기

위 예제를 실행하면 다음과 같은 결과가 출력됩니다.

Car Model: BMW
Car Year: 2020

위 결과에서 알 수 있듯이, getAsJsonArray("cars").get(0)을 통해 첫 번째 자동차 객체에 접근하고, get("model")get("year")을 통해 모델과 연도를 추출할 수 있습니다.

결론

이 포스트에서는 자바에서 JSON 데이터의 중첩된 배열 요소를 추출하는 방법에 대해 알아보았습니다. Gson 라이브러리를 이용하여 JSON 데이터를 파싱하고 필요한 요소를 추출하는 방법을 익혔습니다. Gson은 다양한 JSON 데이터 처리 작업에 사용될 수 있으므로, 필요에 따라 다양한 기능을 살펴보시기 바랍니다.

References