JSON이란 데이터 교환을 위해 만들어진 객체 형태의 포맷이다. 예를들어 우리가 네트워크에서 메세지를 전송하는데 그 형태가 다음과 같이 객체의 형태라고 가정해보자.
const message = {
sender : "Json",
receiver : "Paker",
message : "Hello",
createAt : "2023-04-12 10:34"
}
위의 메시지를 전송하려면 다음과 같은 조건을 충족해야한다.
발신자와 수신자가 같은 프로그램을 사용할 것.
문자열처럼 범용적으로 읽을 수 있는 형태여야 한다.
그렇기 때문에 만약 같은 프로그램을 사용하는게 아니라면 위의 객체형태의 메시지를 문자열의 형태로 변환해주어야 한다.
객체형태의 데이터를 문자열의 형태로 변환하기 위해서 단순히 타입 변환을 한다면 [object Object]
라는 결과를 볼 수 있다.
이 문제를 해결하기 위해서는 기존의 객체를 JSON
의 형태로 변환하는 별도의 방법을 사용해야한다.
JSON.stringfy(message)
: 객체 형태의 데이터를 JSON
의 형태로 변환해주는 메소드다.
이러한 과정을 '직렬화(serialize)'라고 한다.
JSON.parse(message)
: JSON
형태의 데이터를 객체 형태로 변환해주는 메소드다.
이러한 과정을 '역직렬화(deserialize)'라고 한다.