용어JSON
페이지 정보
yundream 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 21-07-02 13:45 2,538 0관련링크
본문
JSON
데이터 타입과 문법
JSON은 아래의 타입을 지원한다.
- Number : 소수를 포함한 숫자와 지수 표기법(E)를 지원한다. NaN 같은 숫자가 아닌 데이터는 지원하지 않으며, integer과 floating-point를 구분하지 않는다. 이들에 대한 구분은 애플리케이션 단에서 처리해야 한다.
- String : Unicode 문자를 지원한다. String은 따움표(Double-quote)로 구분하며, 백스페이스 문자를 사용할 수 있다.
- Boolean : true와 false를 지원한다.
- Array : 배열을 지원한다. 배열은 대괄호 표기법으로 표현할 수 있다.
- Object : 정렬되지 않은 연관배열(name과 key로 이루어진) 객체를 사용할 수 있다.
- null : 값이 없을 경우 null을 사용할 수 있다.
아래는 개인정보를 포현하는 JSON 파일 예제다. Number, String, Boolean, Array, Object, null을 모두 포함하고 있다.
[code]
{
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"height_cm": 167.6,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "office",
"number": "646 555-4567"
}
],
"children": [],
"spouse": null
}
[/code]
MIME Type
JSON 데이터를 위한 공식 MIME 타입은 "application/json"이다. 이 외에도 오래된 MIME 타입을 지원하기 위해서 "text/json"과 "text/javascript" 도 인식한다.
브라우저에서의 인코딩 및 디코딩 지원
최신의 모든 브라우저들은 JSON 인코딩/디코딩 기능을 내장하고 있다. 한때 eval() 함수를 이용해서 JSON 데이터를 처리하기도 했지만, 2009년 이후로는 브라우저에서 지원하는 JSON.parse()와 JSON.stringify()를 이용해서 처리하고 있다.
- Mozilla Firefox 3.5 이상
- Internet Exxplorer 8 이상
- Opera 10.5 이상
- WebKit 기반 브라우저들 (애플 Safari)
- Blink 기반 브라우저들 (구글 Chrome, Opera)
많은 자바스크립트 라이브러리들 역시 JSON을 지원한다.
- YUI 라이브러리
- Prototype
- jQuery
- Dojo 툴킷
- MooTools
장점
- 텍스트로 이루어져 있어서, 사람이 읽고 쓰기가 쉽다.
- 개발과 디버깅이 쉽다.
- 단순하다.
- (특히 웹 브라우저기반의)웹 애플리케이션과 궁합이 잘 맞는다.
- 스키마에 대한 정보가 없어도 파싱할 수 있다.
단점
- 바이너리 프로토콜에 비해서 파싱이 느리다.
- 바이너리 프로토콜에 비해서 데이터가 크다.