[JS] JSON.stringify()란?

Kim yeonhee·2025년 1월 2일
0

JavaScript

목록 보기
4/13

JSON은 일반적으로 웹 서버와 데이터를 교환하는데 사용된다.
웹 서버로 데이터를 보낼 때, JavaScript 객체, 배열등은 서버와 교환할 수 없기 때문에 데이터는 문자열이어야 한다.

그래서 이를 문자열로 변환하는 직렬화(Serialization)가 필요하다.

JSON.stringify()는 JavaScript 객체를 JSON문자열로 직렬화할 때 사용한다.

const obj = {name: "연희", age: 28}
const jsonstring = JSON.stringify(obj);
console.log(jsonString); // '{"name":"연희","age":28}'

위의 코드에서는 객체 objJSON.stringify(obj)로 문자열로 변환된 것을 확인할 수 있다.

💡 문자열화 시 제한 사항

순환 참조가 있을 때 에러 발생

const obj = {};
obj.self = obj;
JSON.stringify(obj); // TypeError: Converting circular structure to JSON

위의 코드에서 obj.self= obj로 인해 objself 속성이 자기 자신을 참조한다.
이럴 경우 obj내부의 selfobj를 참조하면서 무한 루프가 만들어진다.

objself속성을 직렬화하려고 보니 obj를 다시 참조하는 순환 구조를 발견하고
직렬화를 중단한 뒤 typeError를 발생시킨다.

함수 및 Symbol은 무시

const obj = {name : "연희", greet: () => "Hello, id:Symbol("id") };
console.log(JSON.stringify(obj)); // '{"name":"연희"}'

JavaScript 배열을 문자열화하기

배열도 마찬가지로 문자화가 가능하다.

const arr = ["hee", "kim", "lee"];
const myJSON = JSON.stringify(arr);
console.log(myJSON); // ["hee","kim","lee"]

JSON.stringify(arr)로 JSON 형식의 문자열로 변환한다.
배열의 요소가 이미 문자열이므로 그대로 유지된다.



참고한 글
https://www.w3schools.com/js/js_json_stringify.asp
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

0개의 댓글