JSON

FE 개발자 신상오·2022년 6월 23일
0

JS

목록 보기
14/15
post-thumbnail

JSON

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

네트워크를 통해 어떤 객체의 내용을 다른 프로그램에게 전송할 경우를 가정

const message = {
  sender: "김코딩",
  receiver: "박해커",
  message: "해커야 오늘 저녁 같이 먹을래?",
  createdAt: "2021-01-12 10:10:10"
}

위와 같은 객체 코드를 전송하려면
전송 가능한 조건
1. 발신자와 수신자가 같은 프로그램을 사용하거나
2. 문자열처럼 범용적으로 읽을 수 있는 형태여야함

하지만 객체는 타입 변환을 이용해 String으로 변환할 경우 객체 내용을 포함하지 않음
문자열 변환 message.toString()
형변환 String(message) 를 시도할 경우 [object Object]라는 결과를 리턴할 뿐임

객체 <-> JSON 변환 메서드

JSON.stringify : 객체 -> JSON

let transferableMessage = JSON.stringify(message)

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

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

stringif하는 과정을 직렬화(serialize)라고 함

JSON으로 변환된 객체의 타입은 문자열

JSON.parse : JSON -> 객체

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포맷은 JS말고도 많은 언어에서 범용적으로 사용하는 포맷임

JSON의 기본 규칙

profile
주간 회고용 블로그입니다 (개발일지와 정보글은 티스토리에 작성합니다.)

0개의 댓글