Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 JSONArray를 String 배열로 변환하는 방법

JSON(JavaScript Object Notation)은 가장 널리 사용되는 데이터 교환 형식 중 하나입니다. JSON은 경량(lightweight)이며 특정 프로그래밍 언어에 종속되지 않는 언어 독립적이라는 장점이 있어 다양한 시스템 간 데이터 전송에 활용됩니다.

JSONArray는 문자열을 파싱하여 벡터(vector)와 유사한 객체를 생성하며, java.util.List 인터페이스를 지원합니다. 따라서 JSONArray의 요소를 하나씩 읽어 List에 담은 뒤, 이를 배열로 변환하는 방식으로 String 배열로 손쉽게 변환할 수 있습니다.

변환 절차

JSONArray를 String 배열로 변환하는 과정은 다음과 같습니다.

  1. JSONArray 객체를 생성하고 데이터를 추가합니다.
  2. 반복문을 사용해 JSONArray의 각 요소를 getString() 메서드로 읽어 List<String>에 저장합니다.
  3. List의 toArray() 메서드를 호출하여 String 배열로 최종 변환합니다.

예제 코드

import org.json.*;
import java.util.*;

public class JsonArraytoStringArrayTest {
    public static void main(String[] args) {
        JSONArray jsonArray = new JSONArray();
        jsonArray.put("INDIA");
        jsonArray.put("AUSTRALIA");
        jsonArray.put("SOUTH AFRICA");
        jsonArray.put("ENGLAND");
        jsonArray.put("NEWZEALAND");

        List<String> list = new ArrayList<String>();
        for(int i = 0; i < jsonArray.length(); i++) {
            list.add(jsonArray.getString(i));
        }

        System.out.print("JSONArray: " + jsonArray);
        System.out.print("\n");

        String[] stringArray = list.toArray(new String[list.size()]);
        System.out.print("String Array: ");
        for(String str : stringArray) {
            System.out.print(str + " ");
        }
    }
}

실행 결과

JSONArray: ["INDIA","AUSTRALIA","SOUTH AFRICA","ENGLAND","NEWZEALAND"]
String Array: INDIA AUSTRALIA SOUTH AFRICA ENGLAND NEWZEALAND

정리

이 예제에서 핵심은 getString(int index) 메서드입니다. 이 메서드는 JSONArray에서 해당 인덱스의 값을 문자열로 반환하므로, 반복문과 함께 사용하면 모든 요소를 안전하게 추출할 수 있습니다. 이후 toArray(new String[list.size()])를 호출하면 List가 String 배열로 변환됩니다.

참고로 Java 8 이상에서는 스트림(Stream) API를 활용하여 더 간결하게 처리할 수도 있습니다.

String[] stringArray = IntStream.range(0, jsonArray.length())
        .mapToObj(jsonArray::getString)
        .toArray(String[]::new);

이처럼 JSONArray를 String 배열로 변환하는 방법은 API 응답 파싱 등 실무에서 자주 사용되므로, 기본 패턴을 잘 익혀두면 유용합니다.