[java] 자바에서 JSON 배열 다루기

JSON(JavaScript Object Notation)은 데이터를 표현하기 위한 경량의 형식으로, 자바에서 JSON 데이터를 다루는 경우가 많습니다. 이번 글에서는 자바에서 JSON 배열을 다루는 방법에 대해 알아보겠습니다.

1. JSON 라이브러리 추가하기

JSON 데이터를 다루기 위해서는 먼저 JSON 관련 라이브러리를 프로젝트에 추가해야 합니다. 자바에서 많이 사용되는 JSON 라이브러리로는 Gson, Jackson, JSON-B 등이 있습니다. 본 예시에서는 Gson을 사용하도록 하겠습니다.

Gson을 사용하기 위해 Maven을 사용한다면, pom.xml 파일에 다음 의존성을 추가합니다:

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

Gradle을 사용한다면, build.gradle 파일에 다음 의존성을 추가합니다:

implementation 'com.google.code.gson:gson:2.8.6'

의존성을 추가한 후, IDE에서 프로젝트를 Synchronize 또는 Refresh 해 줍니다.

2. JSON 배열 생성하기

JSON 배열을 생성하려면 Gson 라이브러리의 JsonArray 클래스를 사용합니다.

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class Main {
    public static void main(String[] args) {
        JsonArray jsonArray = new JsonArray();
        
        jsonArray.add("Apple");
        jsonArray.add("Banana");
        jsonArray.add("Orange");
        
        System.out.println(jsonArray);
    }
}

위 코드를 실행하면, 다음과 같은 JSON 배열이 출력됩니다:

["Apple", "Banana", "Orange"]

3. JSON 배열 파싱하기

이제 생성한 JSON 배열을 파싱해 보도록 하겠습니다. Gson 라이브러리의 JsonParser 클래스를 사용하여 JSON 문자열을 파싱할 수 있습니다.

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class Main {
    public static void main(String[] args) {
        String jsonString = "[\"Apple\", \"Banana\", \"Orange\"]";
        
        JsonArray jsonArray = JsonParser.parseString(jsonString).getAsJsonArray();
        
        for (JsonElement element : jsonArray) {
            System.out.println(element.getAsString());
        }
    }
}

위 코드를 실행하면, 각 요소를 한 줄에 하나씩 출력하는 결과를 얻을 수 있습니다:

Apple
Banana
Orange

4. JSON 배열 데이터 접근하기

파싱한 JSON 배열의 각 요소에 접근하기 위해서는 getAs 메소드를 사용합니다. 예를 들어, 정수형 데이터를 다루기 위해서는 getAsInt(), 문자열 데이터를 다루기 위해서는 getAsString() 메소드를 사용할 수 있습니다.

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class Main {
    public static void main(String[] args) {
        String jsonString = "[{\"name\":\"John\", \"age\":30}, {\"name\":\"Jane\", \"age\":25}]";

        JsonArray jsonArray = JsonParser.parseString(jsonString).getAsJsonArray();

        for (JsonElement element : jsonArray) {
            JsonObject jsonObject = element.getAsJsonObject();
            String name = jsonObject.get("name").getAsString();
            int age = jsonObject.get("age").getAsInt();

            System.out.println("Name: " + name);
            System.out.println("Age: " + age);
            System.out.println();
        }
    }
}

위 코드를 실행하면, 다음과 같은 결과를 얻을 수 있습니다:

Name: John
Age: 30

Name: Jane
Age: 25

결론

이번 글에서는 자바에서 JSON 배열을 다루는 방법을 알아보았습니다. Gson 라이브러리의 JsonArrayJsonParser를 사용하여 JSON 배열을 생성하고 파싱하는 방법을 설명했습니다. JSON 배열의 각 요소에 접근하기 위해서는 적절한 getAs 메소드를 사용하여 데이터를 추출할 수 있습니다.

Gson 외에도 다른 JSON 라이브러리들도 많이 있으니, 필요에 따라 적합한 라이브러리를 선택하여 사용하시면 됩니다.

참고 자료: