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

Java에서 다른 JSON 객체의 하위 집합을 이용해 JSON 객체 구성하는 방법

JSON은 JavaScript Object Notation의 약자로, 데이터를 전송하고 저장하기 위해 널리 사용되는 경량 데이터 형식입니다. Java의 JSONObject 클래스는 문자열을 파싱하여 맵(map)과 유사한 객체를 생성할 수 있으며, 이미 존재하는 JSON 객체에서 필요한 키만 추출해 새로운 JSON 객체를 만드는 기능도 제공합니다.

이때 활용되는 것이 바로 JSONObject(JSONObject jo, java.lang.String[] names) 생성자입니다. 이 생성자는 원본 JSON 객체와 함께 복사하고 싶은 키 이름들을 문자열 배열로 전달받습니다. 지정된 키에 해당하는 값들만 새 객체에 복사되며, 원본 객체에 존재하지 않는 키가 배열에 포함된 경우 해당 키는 자동으로 무시됩니다.

문법(Syntax)

public JSONObject(JSONObject jo, java.lang.String[] names)

예제 코드

아래 예제에서는 HashMap으로 JSON 객체를 먼저 생성한 뒤, 그중 "Name"과 "Age" 두 개의 키만 선택하여 하위 집합(subset) JSON 객체를 만드는 과정을 보여줍니다.

import java.util.*;
import org.json.*;

public class JSONSubsetTest {
   public static void main(String[] args) throws JSONException {
      Map<String, Object> map = new HashMap<String, Object>();
      map.put("Name", "Adithya");
      map.put("Age", 25);
      map.put("DOB", new Date(94, 4, 6));
      map.put("City", "Hyderabad");

      JSONObject obj = new JSONObject(map);
      System.out.println(obj.toString(2));

      // "Name"과 "Age" 키만 포함하는 하위 집합 객체 생성
      JSONObject subset = new JSONObject(obj, new String[]{"Name", "Age"});
      System.out.println(subset.toString(2));
   }
}

실행 결과

{
  "City": "Hyderabad",
  "DOB": "Fri May 06 00:00:00 IST 1994",
  "Age": 25,
  "Name": "Adithya"
}
{
  "Age": 25,
  "Name": "Adithya"
}

핵심 정리

첫 번째 출력 결과는 원본 JSON 객체의 전체 내용이며, 두 번째 출력 결과는 JSONObject(obj, names) 생성자를 통해 "Name"과 "Age" 키만 복사된 하위 집합 객체입니다. 이처럼 이 생성자를 활용하면 대용량 JSON 데이터에서 특정 필드만 손쉽게 추출할 수 있어, API 응답 최적화나 데이터 필터링 작업에 매우 유용합니다.