const message = {
sender: "김코딩",
receiver: "박해커",
message: "해커야 오늘 저녁 같이 먹을래?",
createdAt: "2021-01-12 10:10:10"
}
이러한 메세지 객체를 전송하려면,
메세지를 보내는 발신자와 수신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있는 형태여야 한다.
그러나 message.toString()
이나 String(message)
를 사용하면 [object Object]
라는 결과를 리턴 받는다.
따라서 이 문제를 해결하기 위한 메서드를 사용해야 한다.
let transferableMessage = JSON.stringify(message)
console.log(transferableMessage)
//`{
//"sender":"김코딩",
//"receiver":"박해커",
//"message":"해커야 오늘 저녁 같이 먹을래?",
//"createdAt":"2021-01-12 10:10:10"
//}`
console.log(typeof(transferableMessage))
// `string`
stringify하는 이 과정을 직렬화(serialize)
라고 부른다.
JSON으로 변환된 객체의 타입은 문자열
이다.
let packet = `{"sender":"김코딩","receiver":"박해커","message":"해커야 오늘 저녁 같이 먹을래?","createdAt":"2021-01-12 10:10:10"}`
let obj = JSON.parse(packet)
console.log(obj)
/*
* {
* sender: "김코딩",
* receiver: "박해커",
* message: "해커야 오늘 저녁 같이 먹을래?",
* createdAt: "2021-01-12 10:10:10"
* }
*/
console.log(typeof(obj))
// `object`
JSON.parse를 적용하는 이 과정을 역직렬화(deserialize)
라고 부른다.