JSON(JavaScript Object Notation)은 속성-값 쌍(attribute–value pairs and array data types (or any other serializable value) 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷이다. 특히, 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법으로 알려져 있다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수값을 표현하는 데 적합하다.
[출처 : 위키백과]
객체타입으로 이루어진 내용들을 전달하기 위해선 JSON포맷으로 변환해야한다고 하였다.
이럴때 사용하는것이 JSON.Stringify()이다. 아래 예시를 통해 확인해보자
const message={
sender: "제이슨",
receiver: "친구",
message: "안녕?",
createdAt: "2021-08-12 10:11:33"
}
let stringMessage= JSON.stringify(message) // 객체를 문자열화
>stringMessage
"{"sender":"제이슨","receiver":"친구","message":"안녕?","createdAt":"2021-08-12 10:11:33"}" // JSON을 통하여 문자열회된 객체의 모습
위와 같이 object타입의 message가 JSON.stringify()를 통하여 'string'화 된것을 확인 할 수 있다.
발신자는 객체를 문자열화 하여 발신하고, 수신자는 문자열을 받아 객체화 시켜야한다.
이럴때 사용하는것이 JSON.parse()이다. 아래 예시를 통해 확인해보자.
let objectMessage = JSON.parse(stringMessage)
// 위의 예시를 통해 문자열화 된 message를 객체화
>objectMessage
{sender: "제이슨", receiver: "친구", message: "안녕?", createdAt: "2021-08-12 10:11:33"} //JSON을 통하여 객체화된 문자열의 모습==> 기존message와 동일한 모습인것을 확인할 수 있다.
예시에서 본인은 JSON.stringify()를 '객체를 문자열화',
JSON.parse는 '문자열을 객체화'시킨다고 표현하였는데 직렬화와 역직렬화라고 한다고한다.
추가로 JSON은 JavaScript의 객체와는 달리 반드시 큰따옴표(")를 사용해야한다.
그리고 JSON은 키와 값사이, 그리고 키-값 쌍 사이에는 공백이 있어서는 안된다.