✅ JSON 구조가 재귀 함수를 사용할 수 있는 Tree 구조임을 이해할 수 있다. (stringifyJSON)
✅ JSON.stringify 와 JSON.parse 가 seriealize, deserialize라는 것을 이해할 수 있다.
✅ JSON.stringify 와 JSON.parse 를 사용하여 자바스크립트 값과 JSON을 넘나들 수 있다.
✅ JSON에 재귀 호출을 사용할 때, 어디에 사용해야 할지 이해할 수 있다.
다른 컴퓨터와 데이터를 주고받는 약속, 사람들이 읽고 쓰기 쉽게 문자열로 표현해놓은 방법
JSON은 JavaScript Object Notation의 줄임말로, 데이터 교환을 위해 만들어진 객체 형태의 포맷이다
네트워크를 통해, 어떤 객체 내용을 다른 프로그램에게 전송할때 운영체제와 언어가 다르다면 바로 사용할 수 없다
객체가 전송 가능하려면, 메시지를 보내는 발신자와 메시지를 받는 수신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있는 형태여야한다
사람들이 읽고 쓰기 쉽게 문자열로 표현해놓은 방법인 JSON을 알아보자 !
JSON.stringify
: 객체를 JSON 형태로 변환
JSON.parse
: JSON을 객체형태로 변환
객체를 전송하려면 JSON형태로 변환해서 보내줘야한다
이때 사용하는 메소드가 JSON.stringify이다
let transferableMessage = JSON.stringify(message)
console.log(transferableMessage) // `{"sender":"김코딩","receiver":"박해커","message":"해커야 오늘 저녁 같이 먹을래?","createdAt":"2021-01-12 10:10:10"}`
console.log(typeof(transferableMessage)) // `string`
객체를 JSON형태로 변환하는 과정을 직렬화(serialize)라고 한다
JSON으로 변환된 객체의 타입은 문자열이고
발신자는 객체로 직렬화한 문자열으로 객체의 내용을 아무에게나 보낼 수 있다
반대로 수신자는 문자열을 다시 객체의 형태로 바꿔서 활용을 해야 하는데
이때 사용하는 메소드가 JSON.parse이다
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)라고 한다
JSON 사용할때 사용 규칙이 있는데
키와 문자열 값은 반드시 "" 큰따옴표를 붙여야 하고
JSON은 키와 값 사이, 그리고 키-값 쌍 사이에는 공백이 있으면 안된다