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

Java에서 두 개의 JSON 객체를 병합하는 방법 – putAll() 메서드 활용하기

JSON(JavaScript Object Notation)은 경량화된 데이터 교환 형식으로, 키-값(key-value) 쌍의 구조로 데이터를 표현합니다. Java에서 JSONObject는 문자열로부터 텍스트를 파싱하여 맵(Map)과 유사한 객체를 생성할 수 있으며, java.util.Map 인터페이스를 지원합니다.

이 글에서는 org.json.simple.JSONObject 클래스를 사용하여 두 개의 JSON 객체를 하나로 병합하는 방법을 알아보겠습니다.

putAll() 메서드란?

JSON 객체 병합은 putAll() 메서드를 통해 간단하게 구현할 수 있습니다. 이 메서드는 java.util.Map 인터페이스에서 상속받은 것으로, 지정한 맵의 모든 키-값 쌍을 현재 객체에 복사합니다. 만약 동일한 키가 존재한다면, 나중에 병합되는 객체의 값으로 덮어쓰게 됩니다.

예제 코드

아래 예제에서는 첫 번째 JSON 객체와 두 번째 JSON 객체를 생성한 후, putAll() 메서드를 사용하여 두 객체를 병합합니다.

import java.util.Date;
import org.json.simple.JSONObject;

public class MergeJsonObjectsTest {
    public static void main(String[] args) {
        // 첫 번째 JSON 객체
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("Name", "Adithya");
        jsonObj.put("Age", 25);
        jsonObj.put("Address", "Hitech City");

        // 두 번째 JSON 객체
        JSONObject jsonObj1 = new JSONObject();
        jsonObj1.put("City", "Hyderabad");
        jsonObj1.put("DOB", new Date(104, 3, 6));

        // 첫 번째와 두 번째 JSON 객체 병합
        jsonObj.putAll(jsonObj1);

        System.out.println(jsonObj);
    }
}

실행 결과

{"Address":"Hitech City","DOB":Tue Apr 06 00:00:00 IST 2004,"City":"Hyderabad","Age":25,"Name":"Adithya"}

코드 설명

위 코드의 실행 흐름을 살펴보면 다음과 같습니다.

1. 첫 번째 JSONObject에 이름(Name), 나이(Age), 주소(Address) 데이터를 추가합니다.
2. 두 번째 JSONObject에는 도시(City), 생년월일(DOB) 데이터를 추가합니다.
3. putAll(jsonObj1) 호출 시 두 번째 객체의 모든 항목이 첫 번째 객체에 통합됩니다.
4. 최종적으로 병합된 단일 JSON 객체가 출력됩니다.

주의 사항

병합 과정에서 두 객체에 동일한 키가 존재하면 기존 값이 새로운 값으로 대체된다는 점을 유의해야 합니다. 또한 org.json.simple 라이브러리는 외부 의존성으로, Maven이나 Gradle 프로젝트에서는 해당 라이브러리를 빌드 파일에 추가해야 사용할 수 있습니다.