
JSON.stringify(value) 함수는 자바스크립트 객체를 JSON 문자열로 변환하는 메서드입니다. 이 함수의 인자로 전달할 수 있는 객체의 타입은 다음과 같습니다.
- 객체(object)
- 배열(array)
- 숫자(number)
- 문자열(string)
- 불리언(boolean)
- null
- undefined
이 함수를 사용할 때, 객체의 속성 중에 함수를 포함한 경우 JSON 문자열로 변환되지 않습니다. 이 경우를 처리하기 위해, 다음과 같은 방법을 사용할 수 있습니다.
- 함수를 포함하지 않는 새로운 객체를 생성하여, 원래 객체의 속성을 복사합니다.
- JSON.stringify(value, replacer) 함수를 사용하여, 함수를 포함한 객체를 JSON 문자열로 변환합니다. replacer 함수는 객체의 속성을 변환할 때 호출되는 함수입니다. 이 함수를 사용하여, 함수를 포함한 객체의 속성을 JSON 문자열로 변환할 수 있습니다.
예를 들어, 다음과 같이 함수를 포함한 객체를 JSON 문자열로 변환할 수 있습니다.
#hostingforum.kr
javascript
function Person(name, age) {
this.name = name;
this.age = age;
this.sayHello = function() {
console.log('Hello, my name is ' + this.name);
};
}
let person = new Person('John', 30);
// 함수를 포함한 객체를 JSON 문자열로 변환
let json = JSON.stringify(person, (key, value) => {
if (typeof value === 'function') {
return value.toString();
}
return value;
});
console.log(json);
이 예제에서, sayHello 함수는 JSON 문자열로 변환되지 않습니다. 그러나 replacer 함수를 사용하여, sayHello 함수를 JSON 문자열로 변환할 수 있습니다.
2025-03-19 11:06