한 장치에서 다른 장치로, 한 언어에서 다른 장치로 데이터를 전송하려면 구조화되고 균일하며 잘 정의 된 규칙이 필요하다.
JSON은 JS 객체를 기반으로하지만 특정 조건이 유효해야 한다.
이 특정 조건은 JS에 내장되어 있는 JSON.stringify()
로 해결할 수 있다.
이 메서드는 JS 객체를 데이터 손실없이 어디로든 전송할 수 있는 인코딩된 문자열로 변환하는데 사용한다.
function Student(name, roll_number, age){
this.name = name;
this.roll_number = roll_number;
this.age = age;
}
const student1 = new Student(“hanheesong”, “123”, 22);
const str = JSON.stringify(student1);
console.log(str); // {“name”:”hanheesong”, “roll_number”:”123”,”age”:22}
비슷하지만 다른 다른 객체를 고려해보자.:
var obj = {};
obj.key1 = “value1”;
obj.key2 = obj;
var str = JSON.stringify(obj);
console.log(str); // => error
Uncaught TypeError: Converting circular structure to JSON
key2
가 obj
를 참조하기 때문에 발생한다.
이러한 객체를 순환 객체라고 하며 JSON문자열로 변환 할 수 없다.