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

Java에서 JsonObjectBuilder와 JsonArrayBuilder로 JSON 생성하는 방법

Java에서 JSON 데이터를 프로그래밍 방식으로 생성할 때 JsonObjectBuilderJsonArrayBuilder를 활용하면 매우 편리합니다. JsonObjectBuilderJsonObject 모델을 만드는 데 사용되고, JsonArrayBuilderJsonArray 모델을 생성하는 데 사용됩니다.

두 빌더 모두 Json 클래스를 통해 생성할 수 있습니다. Json.createObjectBuilder().build()를 호출하면 비어 있는 JsonObject 인스턴스를 만들 수 있으며, 마찬가지로 Json.createArrayBuilder().build()를 사용하면 비어 있는 JsonArray 인스턴스를 생성할 수 있습니다.

주요 특징

  • JsonObjectBuilder: 키-값 쌍으로 구성된 JSON 객체를 체이닝 방식으로 순차적으로 추가하며 생성합니다.
  • JsonArrayBuilder: 배열 형태의 JSON 데이터를 요소 단위로 추가하여 생성합니다.
  • 빌더 안에 다른 빌더를 중첩하여 중첩된 객체나 배열도 손쉽게 표현할 수 있습니다.

예제 코드

아래 예제는 직원 정보를 담는 JSON 객체를 생성하는 코드입니다. 이름, 나이, 급여와 같은 기본 필드에 더해, 주소 정보는 중첩된 JsonObject로, 전화번호는 JsonArray로 구성했습니다.

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

public class JsonObjectTest {
   public static void main(String[] args) {
      JsonObject empObject = Json.createObjectBuilder().add("empName", "Jai")
            .add("empAge", "25")
            .add("empSalary", "40000")
            .add("empAddress",
               Json.createObjectBuilder().add("street", "IDPL Colony")
                  .add("city", "Hyderabad")
                  .add("pinCode", "500072")
                  .build()
            )
            .add("phoneNumber",
               Json.createArrayBuilder().add("9959984000")
                  .add("7702144400")
                  .build()
            )
            .build();
      System.out.println(empObject);
   }
}

실행 결과

{"empName":"Jai","empAge":"25","empSalary":"40000","empAddress":{"street":"IDPL Colony","city":"Hyderabad","pinCode":"500072"},"phoneNumber":["9959984000","7702144400"]}

정리

이처럼 JsonObjectBuilderadd() 메서드는 빌더 자신을 반환하기 때문에 메서드 체이닝을 통해 가독성 높은 코드를 작성할 수 있습니다. 또한 add() 메서드 내부에서 Json.createObjectBuilder()Json.createArrayBuilder()를 호출하고 build()로 완성된 객체를 전달하면, 위 예제의 주소 객체나 전화번호 배열처럼 복잡한 계층 구조의 JSON도 간결하게 표현할 수 있습니다.