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진수 네 자리로 표현된 유니코드 문자 |