어떤 객체 내용을 다른 프로그램에게 전송하려고 함.
근데 이 객체는 수신자와 발신자가 같은 프로그램을 사용해야하거나
문자열처럼 범용적으로 읽을 수 있어야 함.
but 객체는 String(obj ~~) 해봤자 [object Object] 라는 결과를 리턴함. ( 왜 소문자 대문자임?)
이 문제를 해결하려면 객체를 JSON의 형태로 변환 or JSON을 객체의 형태로 변환!!
JSON.stringify : Object type => JSON으로 변환
JSON.parse : JSON을 Object type으로 변환!
let transferableMessage = JSON.stringify(message)
console.log(transferableMessage) // `{"sender":"김코딩","receiver":"박해커","message":"해커야 오늘 저녁 같이 먹을래?","createdAt":"2021-01-12 10:10:10"}`
console.log(typeof(transferableMessage)) // `string`
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은 서로 다른 프로그램 사이에서 데이터를 교환하기 위한 포맷
자바스크립트 객체 | JSON | |
---|---|---|
키 | 키는 따옴표 없이 쓸 수 있음 | 반드시 큰따옴표를 붙여야 함 |
문자열 값 | 문자열 값은 어떠한 형태의 따옴표도 사용 가능 | 반드시 큰따옴표로 감싸야 함 |
또한 JSON은 키와 값 사이, 그리고 키-값 쌍 사이에는 공백이 있어서는 안됩니다.