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

Flexjson의 rootName() 메서드로 JSON 객체 래핑하기 – Java 예제 가이드


Flexjson은 자바 빈(Bean), 맵(Map), 배열, 컬렉션 등을 JSON 형식으로 직렬화하고 역직렬화할 수 있는 경량급 자바 라이브러리입니다. JSONSerializer는 자바 객체를 JSON으로 변환하는 직렬화 작업을 담당하는 핵심 클래스이며, 기본적으로 얕은 직렬화(shallow serialization) 방식으로 동작합니다.

직렬화된 JSON 데이터를 특정 키 값으로 한 번 감싸고 싶다면 JSONSerializer 클래스가 제공하는 rootName() 메서드를 활용하면 됩니다. 이 메서드는 최종 JSON 결과물을 rootName에 지정한 이름을 필드로 갖는 자바스크립트 객체 형태로 감싸 줍니다.

문법

public JSONSerializer rootName(String rootName)

예제

import flexjson.JSONSerializer;
public class JSONRootNameTest {
    public static void main(String[] args) {
        JSONSerializer serializer = new JSONSerializer().rootName("My_Employee").prettyPrint(true);
        Employee emp = new Employee("Adithya", "Jai", 28, "Hyderabad");
        String jsonStr = serializer.serialize(emp);
        System.out.println(jsonStr);
    }
}
// Employee 클래스
class Employee {
    private String firstName;
    private String lastName;
    private int age;
    private String address;
    public Employee() {}
    public Employee(String firstName, String lastName, int age, String address) {
        super();
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
        this.address = address;
    }
    public String getFirstName() {
        return firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public int getAge() {
        return age;
    }
    public String getAddress() {
        return address;
    }
}

위 예제에서는 rootName("My_Employee")를 호출하여 직렬화 결과를 My_Employee라는 키 아래에 배치했습니다. 또한 prettyPrint(true) 옵션을 함께 설정해 들여쓰기가 적용된 보기 좋은 형태로 출력되도록 했습니다.

실행 결과

{
  "My_Employee": {
    "address": "Hyderabad",
    "age": 28,
    "class": "Employee",
    "firstName": "Adithya",
    "lastName": "Jai"
  }
}

출력 결과를 살펴보면 Employee 객체의 필드들이 최상위에 바로 노출되지 않고, "My_Employee"라는 루트 키 안에 중첩되어 감싸진 것을 확인할 수 있습니다. 이처럼 rootName() 메서드를 사용하면 API 응답 구조를 일관성 있게 설계하거나, 특정 네임스페이스로 데이터를 묶어 전달해야 할 때 유용하게 활용할 수 있습니다.