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

Java에서 Jackson 트리 모델(JsonNode)로 JSON을 생성하는 방법

Jackson 라이브러리에서는 트리 모델(Tree Model)을 사용해 JSON 구조를 메모리상에 표현하고, JsonNode 객체를 통해 데이터를 추가·조회·수정·삭제하는 CRUD 작업을 수행할 수 있습니다. 이 모델은 JSON 구조가 자바 클래스(POJO)와 일대일로 매핑되지 않거나 구조가 동적인 경우에 특히 유용합니다.

JSON을 생성하려면 JsonNodeFactory를 사용합니다. 이 클래스는 노드 인스턴스에 접근할 수 있는 팩토리 메서드와 기본 구현을 제공하며, ObjectNodeset()put() 메서드를 통해 데이터를 채워 넣을 수 있습니다.

JsonNodeFactory 클래스 선언

public class JsonNodeFactory extends Object implements Serializable

예제 코드

아래 예제에서는 직원 정보를 담은 JSON 객체를 만들고, 기술 스택 배열을 포함한 뒤 들여쓰기가 적용된 보기 좋은 형태로 출력합니다.

import java.io.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.node.*;

public class JacksonTreeModelTest {
   public static void main(String args[]) throws IOException {
      JsonNodeFactory factory = new JsonNodeFactory(false);
      ObjectMapper mapper = new ObjectMapper();
      ObjectNode employee = factory.objectNode();

      employee.put("empId", 125);
      employee.put("firstName", "Raja");
      employee.put("lastName", "Ramesh");

      ArrayNode technologies = factory.arrayNode();
      technologies.add("Python").add("Java").add("SAP");
      employee.set("technologies", technologies);

      System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(employee));
   }
}

실행 결과

{
   "empId" : 125,
   "firstName" : "Raja",
   "lastName" : "Ramesh",
   "technologies" : [ "Python", "Java", "SAP" ]
}

주요 메서드 정리

  • objectNode(): 빈 JSON 객체 노드({})를 생성합니다.
  • arrayNode(): 빈 JSON 배열 노드([])를 생성합니다.
  • put(String, 값): int, String, boolean 등 기본 타입 필드를 추가합니다.
  • set(String, JsonNode): 다른 JsonNode(객체·배열 등)를 필드로 추가합니다.
  • writerWithDefaultPrettyPrinter(): 들여쓰기가 적용된 가독성 좋은 형태로 JSON을 출력합니다.