JSON 병합
여러 JSON 객체를 하나로 병합
입력 (JSON 객체 배열)
병합된 출력
JSON 병합이란?
JSON 병합은 두 개 이상의 객체를 하나로 결합하는 것을 의미합니다. 얕은 병합에서는 나중 객체가 둘 다에 존재하는 키에 대해 이전 객체를 덮어씁니다. 깊은 병합에서는 중첩된 객체가 대체되는 대신 재귀적으로 병합됩니다. 이는 구성 파일 병합, API 응답 결합 또는 기본값과 재정의로 객체를 구축할 때 유용합니다.
이 도구는 JSON 객체 배열을 기대합니다. 얕은 또는 깊은 모드를 사용하여 순서대로 병합합니다. 결과는 단일 객체입니다. 처리는 브라우저에서 이루어집니다.
이 도구 사용 방법
JSON 배열 입력
JSON 객체 배열을 붙여넣으세요. 예: [{"a": 1}, {"b": 2}, {"a": 3}]. 순서가 중요합니다: 나중 객체가 충돌하는 키에 대해 이전 객체를 덮어씁니다. 깊은 병합 또는 얕은 병합을 사용하여 병합 동작을 선택하세요.
출력 확인
오른쪽 패널에 병합된 객체가 표시됩니다. 얕은 모드에서 {"a": 1, "b": 2}와 {"a": 3}을 병합하면 {"a": 3, "b": 2}가 됩니다. 깊은 모드에서는 중첩된 객체가 재귀적으로 병합됩니다.
복사 또는 다운로드
결과를 가져오려면 <strong>복사</strong> 또는 <strong>다운로드</strong>를 사용하세요. 형식화를 위해 JSON 포매터를 사용하세요. 유효성 검사를 위해 JSON 유효성 검사기를 사용하세요.
JSON 병합이 도움이 되는 경우
구성 파일 병합은 일반적인 사용 사례입니다. <code>default.json</code>과 <code>production.json</code>이 있고, production이 필요한 키만 덮어쓰도록 병합하고 싶을 때입니다. 깊은 병합은 중첩된 기본값을 재귀적으로 결합합니다. 여러 소스의 API 응답이나 기본 템플릿에서 환경별 재정의로 객체를 구축할 때 병합은 결합된 단일 객체를 제공합니다. JSON 포매터는 가독성을 위해 결과를 형식화하는 데 도움이 됩니다.
JSON 병합 예제
두 가입자 구성 객체를 병합하는 예제입니다. 나중 객체가 충돌하는 키에 대해 이전 객체를 덮어씁니다.
예제: 가입자 구성 병합
입력 (병합할 객체 배열):
병합된 출력:
얕은 병합 vs 깊은 병합
얕은 병합: 두 객체 모두 키를 가지고 있으면 나중 객체의 값이 이전 것을 완전히 대체합니다. 중첩된 객체는 병합되지 않고 대체됩니다. 깊은 병합: 중첩된 객체는 재귀적으로 병합됩니다. 따라서 {"a": {"b": 1}}을 {"a": {"c": 2}}와 병합하면 깊은 모드에서 {"a": {"b": 1, "c": 2}}가 되지만 얕은 모드에서는 {"a": {"c": 2}}가 됩니다. JavaScript의 Object.assign은 얕은 병합을 합니다. Lodash merge와 같은 라이브러리는 깊은 병합을 합니다.
JSON 사양은 객체를 키-값 쌍의 순서 없는 컬렉션으로 정의합니다. 병합 순서가 중요합니다: 나중 값이 이전 값을 덮어씁니다. Postman이나 fetch의 API 응답에서 구성을 병합하거나 기본값을 재정의와 결합하는 것은 일반적입니다. 공식 표준은 RFC 8259입니다. MDN JSON 가이드는 파싱과 직렬화를 다룹니다.
자주 묻는 질문
배열이 아닌 두 개의 별도 객체가 있다면?
배열로 감싸세요: [{"a": 1}, {"b": 2}]. 이 도구는 객체 배열을 기대합니다.
배열은 어떻게 처리되나요?
대부분의 병합 구현에서 배열은 연결되지 않고 대체됩니다. 객체 A에 "items": [1, 2]가 있고 객체 B에 "items": [3]이 있으면 결과는 일반적으로 "items": [3]입니다. 확인하려면 도구의 출력을 확인하세요.
데이터가 어딘가로 전송되나요?
아니요. 병합은 브라우저에서 이루어집니다.
구성 파일을 병합할 수 있나요?
예. 각 구성을 배열의 객체로 붙여넣되, 기본값을 먼저 넣고 재정의를 마지막에 넣으세요. 깊은 병합은 일반적으로 중첩된 구성 구조에 더 좋습니다.
같은 객체에 중복 키가 있다면?
JSON 객체는 중복 키를 가질 수 없습니다. 있다면 파서가 하나만 유지합니다. 먼저 JSON 유효성 검사기로 검증하세요.
관련 도구
JSON 구문에 대해서는 json.org와 RFC 8259를 참조하세요. JavaScript에서 병합에 대해서는 MDN Object.assign과 전개 구문을 참조하세요. Lodash의 깊은 병합에 대해서는 merge 함수를 참조하세요. JSON 개요를 위해 MDN을 참조하세요. jq와 Postman도 참조하세요.