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

Java에서 JsonObject 모델을 활용해 JSON 객체를 생성하는 방법

자바에서 JSON 데이터를 다룰 때 javax.json.JsonObject 인터페이스는 변경 불가능한(immutable) JSON 객체 값을 표현하는 데 사용됩니다. 이 인터페이스는 JSON 객체의 이름/값(name/value) 매핑에 대해 수정할 수 없는(unmodifiable) 맵 뷰를 제공하므로, 한 번 생성된 객체는 안전하게 공유하고 사용할 수 있습니다.

JsonObject 객체를 생성하는 두 가지 방법

JsonObject 인스턴스는 크게 두 가지 방식으로 생성할 수 있습니다.

  • JsonReader 클래스의 readObject() 정적 메서드 — 파일, 스트림 등 입력 소스로부터 JSON 객체를 읽어와 생성합니다.
  • Json 클래스의 createObjectBuilder() 정적 메서드 — 코드에서 직접 키와 값을 추가하며 JSON 객체를 빌드합니다.

문법(Syntax)

public static JsonObjectBuilder createObjectBuilder()

createObjectBuilder() 메서드는 JsonObjectBuilder 객체를 반환하며, 이 빌더의 add() 메서드를 호출해 원하는 키-값 쌍을 순차적으로 추가할 수 있습니다. 모든 값을 추가한 후에는 build() 메서드를 호출해 최종 JsonObject를 완성합니다.

예제 코드

아래 예제는 이름, 직책, 회사, 위치 정보를 담은 JSON 객체를 만들고, 이를 문자열로 출력하는 과정을 보여줍니다.

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

public class JsonObjectTest {
   public static void main(String[] args) throws Exception {
      // JsonObjectBuilder 생성
      JsonObjectBuilder builder = Json.createObjectBuilder();
      
      // 키-값 쌍 추가
      builder.add("Name", "Adithya");
      builder.add("Designation", "Python Developer");
      builder.add("Company", "TutorialsPoint");
      builder.add("Location", "Hyderabad");
      
      // JsonObject 빌드
      JsonObject data = builder.build();
      
      // StringWriter를 통해 JSON 출력
      StringWriter sw = new StringWriter();
      JsonWriter jw = Json.createWriter(sw);
      jw.writeObject(data);
      jw.close();
      
      System.out.println(sw.toString());
   }
}

실행 결과(Output)

{"Name":"Adithya","Designation":"Python Developer","Company":"TutorialsPoint","Location":"Hyderabad"}

정리

이처럼 Json.createObjectBuilder()로 빌더를 생성하고 add() 메서드로 값을 추가한 뒤 build()를 호출하면 손쉽게 JSON 객체를 만들 수 있습니다. 생성된 JsonObject는 변경 불가능하기 때문에 멀티스레드 환경에서도 안전하게 활용할 수 있으며, JsonWriter를 사용하면 객체를 JSON 형식의 문자열로 직렬화하여 출력할 수 있습니다.