
JSON.stringify(value) 함수는 JavaScript 객체를 JSON 형식으로 변환하는 방법입니다.
이 함수를 사용할 때 오류가 발생하는 이유는 다음과 같습니다.
1. undefined 값이 포함된 객체: JSON.stringify() 함수는 undefined 값을 JSON 형식으로 변환할 수 없습니다. 따라서 undefined 값이 포함된 객체를 넘기면 undefined가 출력됩니다.
2. 함수를 포함한 객체: JSON.stringify() 함수는 함수를 JSON 형식으로 변환할 수 없습니다. 따라서 함수를 포함한 객체를 넘기면 오류가 발생합니다.
3. Date 객체: JSON.stringify() 함수는 Date 객체를 JSON 형식으로 변환할 수 없습니다. 따라서 Date 객체를 넘기면 오류가 발생합니다.
4. RegExp 객체: JSON.stringify() 함수는 RegExp 객체를 JSON 형식으로 변환할 수 없습니다. 따라서 RegExp 객체를 넘기면 오류가 발생합니다.
이러한 오류를 해결하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.
1. undefined 값을 제거: undefined 값을 포함한 객체를 JSON.stringify() 함수에 넘기기 전에 undefined 값을 제거하는 방법을 사용할 수 있습니다.
2. 함수를 제거: 함수를 포함한 객체를 JSON.stringify() 함수에 넘기기 전에 함수를 제거하는 방법을 사용할 수 있습니다.
3. Date 객체를 문자열로 변환: Date 객체를 JSON.stringify() 함수에 넘기기 전에 Date 객체를 문자열로 변환하는 방법을 사용할 수 있습니다.
4. RegExp 객체를 문자열로 변환: RegExp 객체를 JSON.stringify() 함수에 넘기기 전에 RegExp 객체를 문자열로 변환하는 방법을 사용할 수 있습니다.
예를 들어, 다음과 같이 undefined 값을 제거하는 방법을 사용할 수 있습니다.
#hostingforum.kr
javascript
const obj = { a: 1, b: undefined, c: 3 };
const str = JSON.stringify(obj, (key, value) => value !== undefined ? value : null);
console.log(str); // {"a":1,"c":3}
또는 다음과 같이 Date 객체를 문자열로 변환하는 방법을 사용할 수 있습니다.
#hostingforum.kr
javascript
const date = new Date();
const obj = { a: 1, b: date };
const str = JSON.stringify(obj, (key, value) => value instanceof Date ? value.toISOString() : value);
console.log(str); // {"a":1,"b":"2023-03-01T00:00:00.000Z"}
2025-08-01 20:31