입력 (JSON 객체 배열)

병합된 출력

JSON 병합이란?

default.json 설정이 있고 production.json이 몇 가지 설정만 재정의한다 — 그리고 하나의 병합된 결과가 필요합니다. 바로 이 도구가 그 역할을 합니다. JSON을 병합한다는 것은 두 개 이상의 객체를 하나로 결합하는 것입니다. 얕은 병합에서는 나중 객체가 공유 키에 대해 이전 것을 덮어씁니다. 깊은 병합(Object.assign 같은 패턴 따름)에서는 중첩된 객체가 완전히 대체되는 대신 재귀적으로 결합됩니다.

이 도구는 JSON 객체 배열을 기대합니다. 얕은 또는 깊은 모드를 사용하여 순서대로 병합합니다. 결과는 단일 객체입니다. 처리는 브라우저에서 이루어집니다.

이 도구 사용 방법

1

JSON 배열 입력

JSON 객체 배열을 붙여넣으세요. 예: [{"a": 1}, {"b": 2}, {"a": 3}]. 순서가 중요합니다: 나중 객체가 충돌하는 키에 대해 이전 객체를 덮어씁니다. 깊은 병합 또는 얕은 병합을 사용하여 병합 동작을 선택하세요.

2

출력 확인

오른쪽 패널에 병합된 객체가 표시됩니다. 얕은 모드에서 {"a": 1, "b": 2}{"a": 3}을 병합하면 {"a": 3, "b": 2}가 됩니다. 깊은 모드에서는 중첩된 객체가 재귀적으로 병합됩니다.

3

복사 또는 다운로드

결과를 가져오려면 복사 또는 다운로드를 사용하세요. 형식화를 위해 JSON 포매터를 사용하세요. 유효성 검사를 위해 JSON 유효성 검사기를 사용하세요.

JSON 병합이 도움이 되는 경우

구성 파일 병합은 일반적인 사용 사례입니다. default.jsonproduction.json이 있고, 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 가이드는 파싱과 직렬화를 다룹니다.

자주 묻는 질문

JavaScript에서 두 JSON 객체를 병합하려면 어떻게 하나요?

얕은 병합에는 스프레드 연산자를 사용하세요: {...objA, ...objB} 또는 Object.assign({}, objA, objB). 깊은 병합에는 Lodash _.merge()와 같은 라이브러리를 사용하세요. 이 도구는 코드 없이 두 가지 모두를 처리합니다.

깊은 병합과 얕은 병합의 차이점은?

얕은 병합에서는 두 객체 모두 같은 키를 가지면 나중 객체의 값이 이전 것을 완전히 대체합니다 — 중첩된 객체 포함. 깊은 병합에서는 중첩된 객체가 재귀적으로 결합됩니다. 따라서 {"a": {"b": 1}}{"a": {"c": 2}}와 깊게 병합하면 {"a": {"b": 1, "c": 2}} — 두 키 모두 보존됩니다.

재정의가 있는 JSON 설정 파일을 병합하려면?

기본값을 먼저, 재정의를 마지막으로 하여 JSON 배열로 설정을 붙여넣으세요: [defaultConfig, productionConfig]. 설정에 중첩된 객체가 있으면 깊은 병합을 사용하세요.

병합 중에 JSON 객체 내의 배열은 어떻게 처리되나요?

배열은 연결되지 않고 대체됩니다. 객체 A에 "items": [1, 2]가 있고 객체 B에 "items": [3]이 있으면 결과는 "items": [3]입니다.

데이터가 서버로 전송되나요?

아니요. 병합이 브라우저에서 완전히 실행됩니다. JSON이 기기에서 절대 나가지 않습니다.

관련 도구

JSON 구문에 대해서는 json.orgRFC 8259를 참조하세요. JavaScript에서 병합에 대해서는 MDN Object.assign전개 구문을 참조하세요. Lodash의 깊은 병합에 대해서는 merge 함수를 참조하세요. JSON 개요를 위해 MDN을 참조하세요. jqPostman도 참조하세요.