자바스크립트 객체 데이터 변환

자바스크립트에서는 객체간 데이터 변환을 위해 다양한 방법을 제공합니다. 이번 글에서는 주로 사용되는 몇 가지 변환 방법을 살펴보겠습니다.

1. JSON.stringify() - 객체를 JSON 문자열로 변환

JSON.stringify() 메서드는 JavaScript 객체를 JSON 문자열로 변환하는 기능을 제공합니다.

let person = {
  name: "John Doe",
  age: 30,
  city: "New York"
};

let jsonStr = JSON.stringify(person);
console.log(jsonStr); // {"name":"John Doe","age":30,"city":"New York"}

위의 예제에서 person 객체를 JSON.stringify() 메서드를 사용해 JSON 문자열로 변환하였습니다. 변환된 JSON 문자열은 jsonStr 변수에 저장되어 출력됩니다. 이를 통해 객체의 데이터를 다른 시스템과 주고받을 때 유용하게 사용할 수 있습니다.

2. JSON.parse() - JSON 문자열을 객체로 변환

JSON.parse() 메서드는 JSON 문자열을 JavaScript 객체로 변환하는 기능을 제공합니다.

let jsonStr = '{"name":"John Doe","age":30,"city":"New York"}';

let person = JSON.parse(jsonStr);
console.log(person.name); // John Doe
console.log(person.age); // 30
console.log(person.city); // New York

위의 예제에서 jsonStr 변수에 저장된 JSON 문자열을 JSON.parse() 메서드를 사용해 JavaScript 객체로 변환하였습니다. 이렇게 변환된 객체는 person 변수에 저장되어 필요한 데이터를 사용할 수 있습니다.

3. 객체를 URL 쿼리 문자열로 변환

URL 파라미터로 객체를 전달해야 하는 경우 객체를 URL 쿼리 문자열로 변환하여 사용할 수 있습니다. 이를 위해서는 new URLSearchParams() 생성자 함수를 사용합니다.

let params = new URLSearchParams();
params.append('name', 'John Doe');
params.append('age', 30);
params.append('city', 'New York');

console.log(params.toString()); // name=John Doe&age=30&city=New York

위의 예제에서 params 변수에 new URLSearchParams()를 호출하여 URLSearchParams 객체를 생성한 뒤, append() 메서드를 사용해 필요한 파라미터를 추가하였습니다. toString() 메서드를 호출하면 URL 쿼리 문자열로 변환된 결과가 출력됩니다.

4. URL 쿼리 문자열을 객체로 변환

URL 쿼리 문자열을 JavaScript 객체로 변환하기 위해서는 URLSearchParams()를 사용할 수 있습니다.

let queryString = "name=John Doe&age=30&city=New York";
let params = new URLSearchParams(queryString);

let person = {};
for (let param of params.entries()) {
  person[param[0]] = param[1];
}

console.log(person.name); // John Doe
console.log(person.age); // 30
console.log(person.city); // New York

위의 예제에서 queryString 변수에 저장된 URL 쿼리 문자열을 URLSearchParams()를 호출하여 URLSearchParams 객체로 변환하였습니다. 이후 반복문을 통해 객체에 필요한 값을 할당하였습니다.

자바스크립트에서 객체 데이터 변환은 다양한 상황에서 사용되는 중요한 작업입니다. 위에서 소개한 방법들은 객체와 JSON 문자열, URL 쿼리 문자열 간의 데이터 변환이 필요한 경우 유용하게 사용될 수 있습니다.