브라우져에서 동작하는 웹 어플리케이션/웹 사이트(client)는 서버(server)와 어떻게 통신할까!?
이렇게 HTTP를 이용해 서버에서 데이터를 요청(request)해 받아올 수 있는 방법중 하나!
HTML과 마찬가지로 데이터를 표현할 수 있는 방식
XML이 서버와 클라이언트 간의 데이터 전송에 사용될 수 있는 유일한 방식은 아니다!
XMLHttpRequest
, fetch()
api를 사용key : value
방식//serialize
let json = JSON.stringify(true);
console.log(json);
json = JSON.stringify(["apple", "orange"]);
console.log(json);
const gyong = {
name: "gyong",
height: 180,
birthday: new Date(),
Symbol: Symbol(),
speak: () => {
console.log(`쏴리질러어~`);
},
};
console.log(gyong);
json = JSON.stringify(gyong);
console.log(json);
json = JSON.stringify(gyong, (key, value) => {
return key === "name" ? "tofu" : value;
});
console.log(json);
변환된 string값을 다시 object로 변환하고싶다면?!
let obj = JSON.parse(json);
console.log(obj);
간단하게 parse를 사용해주면 된다!!
하지만 stringify된 데이터를 다시 object로 변환할 때, 유의해야할 부분들이 있다!!
birthday.getDate()
와 같은 호출이 불가능하다!let obj = JSON.parse(json);
console.log(gyong.birthday.getDate());
console.log(obj.birthday.getDate()); //error 발생!!
reviver
콜백함수를 사용해주면 된다!let obj = JSON.parse(json, (key, value) => {
return key === "birthday" ? new Date() : value;
});
console.log(gyong.birthday.getDate());
console.log(obj.birthday.getDate()); // error 해결!