
JSON (JavaScript Object Notation)데이터 교환을 위해 만들어진 객체 형태의 포맷.
[코드] 메시지를 담고 있는 객체 messageconst message = {
sender: "김코딩",
receiver: "박해커",
message: "해커야 오늘 저녁 같이 먹을래?",
createdAt: "2021-01-12 10:10:10"
}
typeof {a:1} === 'object';
JavaScript에서 객체를 문자열로 변환하기 위해 메서드(message.toString())나
형 변환(String(message))을 시도하면,[object Object]라는 결과를 리턴한다.
이 문제를 해결하는 방법은객체를 JSON의 형태로 변환하거나JSON을 객체의 형태로 변환하는 방법이 있다.
JSON.stringify객체를 JSON으로 변환
stringify하는 이 과정을 직렬화(serialize)한다고 합니다.
let transferableMessage = JSON.stringify(message)
console.log(transferableMessage)
// `{"sender":"김코딩","receiver":"박해커","message":"해커야 오늘 저녁 같이 먹을래?","createdAt":"2021-01-12 10:10:10"}`
console.log(typeof(transferableMessage))
// `string`
JSON.parseJSON을 객체로 변환
JSON.parse를 적용하는 이 과정을 역직렬화(deserialize)한다고 합니다.
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 | |
|---|---|---|
| 키 | 키는 따옴표 없이 쓸 수 있음 { key : "property" } | 반드시 큰따옴표를 붙여야 함 '{"key":"property"}' |
| 문자열 값 | 작은 따옴표도 사용 가능 { "key" : 'property' } | 반드시 큰따옴표로 감싸야 함 '{"key":"property"}' |
| 키와 값 사이 공백 | 사용 가능 {"key" : 'property'} | 사용 불가능 '{"key":"property"}' |
| 키-값 쌍 사이 공백 | 사용 가능 { "key":'property', num:1 } | 사용 불가능 '{"key":"property","num":1}' |