JSON(JavaScript Object Notation)은 데이터를 효과적으로 전달하고 저장하는 경량 데이터 교환 형식입니다. 때로는 여러 개의 JSON 데이터를 하나의 데이터로 병합해야 하는 경우가 있습니다.
자바스크립트에서 JSON 데이터를 병합하는 방법은 여러 가지가 있지만, 이 포스트에서는 Object.assign()
메서드를 사용하는 방법을 알아보겠습니다.
Object.assign()
메서드란?
Object.assign()
메서드는 한 개 이상의 출처 객체로부터 대상 객체로 속성을 복사하는 데 사용됩니다. 이를 활용하여 JSON 데이터를 병합할 수 있습니다.
JSON 데이터를 병합하는 예제
아래는 data1
과 data2
라는 두 개의 JSON 객체를 병합하는 예제입니다.
const data1 = {
username: "john",
email: "john@example.com",
};
const data2 = {
age: 25,
country: "USA",
};
const mergedData = Object.assign({}, data1, data2);
console.log(mergedData);
위 예제에서는 Object.assign()
메서드를 사용하여 빈 객체를 대상 객체로 지정한 뒤, data1
과 data2
를 병합하였습니다. 병합된 데이터는 mergedData
라는 변수에 저장되고, console.log()
를 통해 결과를 출력합니다.
아래는 출력 결과입니다.
{
username: "john",
email: "john@example.com",
age: 25,
country: "USA",
}
중복된 속성 처리 방법
JSON 데이터를 병합할 때, 출처 객체들 사이에 중복된 속성이 있는 경우 어떻게 처리해야 할까요?
Object.assign()
메서드는 병합 시 출처 객체들의 속성을 왼쪽에서 오른쪽 순서로 순회하면서 병합합니다. 이때, 오른쪽 객체의 속성으로 중복되는 경우, 오른쪽 객체의 속성이 우선 순위를 가집니다.
const data1 = {
username: "john",
email: "john@example.com",
age: 22,
};
const data2 = {
age: 25,
country: "USA",
};
const mergedData = Object.assign({}, data1, data2);
console.log(mergedData);
위 예제에서 data1
객체와 data2
객체의 age
속성이 중복되고, data2
객체의 age
속성 값이 더 높습니다. 따라서 병합된 결과에서 age
속성 값은 25가 됩니다.
{
username: "john",
email: "john@example.com",
age: 25,
country: "USA",
}
요약
이 포스트에서는 자바스크립트에서 JSON 데이터를 병합하는 방법을 알아보았습니다. Object.assign()
메서드를 사용하여 여러 개의 JSON 객체를 병합할 수 있으며, 중복된 속성의 경우 오른쪽 객체의 값이 우선 순위를 가집니다. 이를 활용하여 JSON 데이터를 쉽게 병합할 수 있습니다.