[JavaScript] 재귀의 실사용 예시 - JSON.stringify

Hannahhh·2022년 8월 20일
0

JavaScript

목록 보기
37/47

🔍 JSON?


JavaScript Object Notation의 줄임말로, 서로 다른 프로그램 사이에서 데이터 교환을 위해 만들어진 객체 형태의 포맷으로, JavaScript를 포함한 많은 언어에서 범용적으로 사용하고 있다.


메세지 객체를 전송하려면, 발신자와 수신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있는 형태여야 한다.

그러나, 객체는 타입 변환을 이용해 String으로 변환할 경우, 객체 내용을 포함하지 않는다.

따라서, 메서드 message.toString()나 형변환 String(message)를 사용하면 [Object Object]라는 결과가 리턴된다.



이 문제를 해결하려면, 객체를 JSON으로 변환하거나 JSON을 객체로 변환해야하는데, 이때 사용하는 메서드는 아래와 같다.

  • JSON.stringify : 객체 -> jSON(type: 문자열)
  • JSON.parse : JSON -> 객체

let transferableMessage = JSON.stringify(message)

console.log(transferableMessage) 
// `{"sender":"김코딩","receiver":"박해커","message":"해커야 오늘 저녁 같이 먹을래?","createdAt":"2021-01-12 10:10:10"}`

console.log(typeof(transferableMessage))
// `string`



stringify하는 과정을 직렬화(serialize)라고 하며, 발신자는 객체를 직렬화한 문자열 메세지을 수신자에게 보낸다.

수신자는 이 메세지를 다시 객체의 형태로 만들기 위해 JSON.stringify와 정반대의 작업을 수행하는 메서드 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의 기본 규칙


JavaScript ObjectJSON
따옴표 없이 작성 가능
{ key : "property" }
반드시 쌍따옴표를 붙여야 함
'{"key":"property"}'
문자열 값작은따옴표도 사용 가능
{ "key" : 'property' }
반드시 큰따옴표로 감싸야 함
'{"key":"property"}'
키와 값 사이 공백사용 가능
{"key" : 'property'}
사용 불가
'{"key":"property"}'
키-값쌍 사이 공백사용 가능
{ "key":'property', num:1 }
사용 불가능
'{"key":"property","num":1}'




Reference : 코드스테이츠

0개의 댓글