Day +42

비트·2023년 6월 12일
0

CodeStates

목록 보기
43/54
post-thumbnail
post-custom-banner

JSON (JavaScript Object Notation)

데이터 교환을 위해 만들어진 객체 형태의 포맷.

  • [코드] 메시지를 담고 있는 객체 message
    • const 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.parse

JSON을 객체로 변환

  • 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}'
profile
Drop the Bit!
post-custom-banner

0개의 댓글