본문 바로가기

JS Ecosystem

(Javascript) JSON 기본

1. 개념

  • Javascript(Javascript Object Notation)의 객체를 범용적으로 읽을 수 있는 문자열 형태로 변환
  • 객체는 타입 변환을 통해 String 형 변환 할 경우 객체 내용이 포함되지 않기 때문에 JSON형태로 변환 필요
  • 웹에서 데이터를 전송할 때 주로 사용
  • JSON에서 키와 속성은 오직 큰따옴표만 사용. 키와 값, 키-값 쌍사이에는 공백이 있으면 안됨

2. JSON.stringify

let obj = {
  sender : 'holystory',
  receiver : 'KAKAO',
  date : '21.10.20',
  num : 1,
}
console.log(JSON.stringify(obj))  
// '{"sender":"holystory","receiver":"KAKAO","date":"21.10.20","num":1}'
console.log(typeof(JSON.stringify(obj)))
// 'string'
  • 객체 --> JSON 형태(문자열), 직렬화(serialize; JSON.stringify를 적용하는 과정)

3. JSON.parse

let obj = `{"sender":"holystory","receiver":"KAKAO","date":"21.10.20","num":1}`

console.log(JSON.parse(obj))
// { sender: 'holstory', receiver: 'KAKAO', date: '21.10.20', num: 1}
 console.log(typeof(JSON.parse(obj)))
 // `object`
  • JSON형태를 객체로 변환, 역직렬화(deserialize)

4. JSON을 사용하는 이유

  • 최소한의 용량으로 데이터 통신이 가능. 경량의 데이터 교환에 좋기 때문에 XML과 비교
  • JS문법을 사용하지만 프로그래밍 언어에 독립적이라서 다양한 언어에서도 사용이 가능
  • 사람과 컴퓨터가 읽기 쉬음
  • 내용이 함축적이다 보니 데이터의 의미를 파악하기 어려울 수 있음
  • XML보다 빠른 전송이 가능하지만 대용량의 데이터 송수신에 부적합한 경우도 있음

 

5. JSON에서 사용할 수 있는 Escape sequence

\b 백스페이스
\f 폼 피드(form feed)
\n 개행
\r 캐리지 리턴(carriage return)
\t 탭(tab)
\" 큰따옴표
\/ 슬래시
\\ 역슬래시
\uHHHH 16진수 네 자리로 표현된 유니코드 문자