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

Java에서 Json 객체 모델을 활용해 JSON 배열을 생성하는 방법

javax.json.JsonArray 인터페이스는 불변(immutable) JSON 배열을 나타내며, 배열에 포함된 값들에 대한 수정 불가능한(unmodifiable) 리스트 뷰를 제공합니다.

JsonArray 객체는 두 가지 방식으로 생성할 수 있습니다. 첫째, 입력 소스(input source)에서 JSON 데이터를 읽어오는 방식이고, 둘째, javax.json.Json 클래스의 정적 메서드인 createArrayBuilder()를 사용하는 방식입니다.

이 기능을 실행하려면 javax.json 패키지를 임포트해야 하며, 해당 패키지는 javax.json-api.jar 파일을 다운로드하여 클래스패스에 추가하면 사용할 수 있습니다.

문법(Syntax)

public static JsonArrayBuilder createArrayBuilder()

예제 코드

아래 예제에서는 JsonObjectBuilder로 객체를 구성한 뒤, createArrayBuilder()를 통해 이메일과 휴대폰 번호 정보를 담은 JSON 배열을 만들고, 이를 최종 JSON 객체에 추가하는 과정을 보여줍니다.

import java.io.*;
import javax.json.*;
import javax.json.JsonObjectBuilder;

public class JsonArrayTest {
    public static void main(String[] args) {
        JsonObjectBuilder builder = Json.createObjectBuilder();
        builder.add("Name", "Raja Ramesh");
        builder.add("Designation", "Java Developer");
        builder.add("Company", "TutorialsPoint");

        JsonArray contactInfo = Json.createArrayBuilder()
            .add(Json.createObjectBuilder().add("email", "raja@gmail.com"))
            .add(Json.createObjectBuilder().add("mobile", "9959984000"))
            .build();

        builder.add("contactInfo", contactInfo);

        JsonObject data = builder.build();

        StringWriter sw = new StringWriter();
        JsonWriter jw = Json.createWriter(sw);
        jw.writeObject(data);
        jw.close();

        System.out.println(sw.toString());
    }
}

실행 결과(Output)

{"Name":"Raja Ramesh","Designation":"Java Developer","Company":"TutorialsPoint",
"contactInfo":[{"email":"raja@gmail.com"},{"mobile":"9959984000"}]}

실행 결과에서 확인할 수 있듯이, contactInfo 필드에는 이메일 객체와 휴대폰 번호 객체가 각각 담긴 JSON 배열 형태로 데이터가 저장된 것을 볼 수 있습니다. 이처럼 createArrayBuilder() 메서드를 활용하면 복잡한 중첩 구조의 JSON 데이터도 손쉽게 모델링할 수 있습니다.