2013. 8. 4. 15:33ㆍ하루에하나씩/트렌드, 기초 IT 정보
JSON (Javascript Object Notation) : http://ko.wikipedia.org/wiki/JSON
1. 정의
- Json은 이종 시스템간 데이터 교환시에 사용할 수 있는 이상적인 방법
(그 형식은 자바스크립트의 구문 형식을 따르지만, 프로그래밍 언어나 플랫폼에 독립적이므로 C, C++, C#, 자바, 자바스크립트, 펄, 파이썬 등 많은 언어에서 이용할 수 있다.)
- JSON(제이슨, JavaScript Object Notation)은, 인터넷에서 자료를 주고받을 때 그 자료를 표현하는 방법이다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수값을 표현하는 데 적합하다.
2. .JSON 의 문법 및 데이터 구조
JSON 문법은 자바스크립트 표준인 ECMA-262 3판의 객체 문법에 바탕을 두며, 인코딩은 유니코드로 한다. 표현할 수 있는 기본 자료형으로는 수, 문자열, 참/거짓, null이 있고, 집합 자료형으로는 배열과 객체가 있다
1) object : key/value 값으로 이루어진 데이터 쌍들의 집합.
- 이 객체는 { 로 시작하고 } 로 끝난다.
- 키/값의 데이터 쌍 사이에는 콜론(:) 으로 구분한다.
2) array : 순서가 있는 값들의 목록, 일반적으로 배열로 구성되어 있다.
- json 배열은 [ ] 로 구성되어 있으며, 콤마(,)로 구분한다.
- 값은 문자열이나 숫자, true 혹은 false , 객체, 배열 등이 될수 있다.
3. JSON 예제
1. Json 을 이용하여 Employee 객체의 인스턴스를 표현한 예제
var employee = {
“firstName” : “John”,
“lastName” : “Doe”,
“emplyeeNumber” : 123,
“title” , “Accountant”
};
var employees = {"emplist" : [
{"firstName" : "John", "lastName" : "Doe"},
{"firstName" : "scott", "lastName" : "tiger"},
{"firstName" : "system", "lastName" : "manager"}
]
};
2. 접근방법
var lastName = employee.lastName;
var firstName = employees.emplist[0].firstName;
자바스크립트의 문법을 채용했기 때문에, 자바스크립트에서 eval 명령으로 곧바로 사용할 수 있다.
이런 특성은 자바스크립트를 자주 사용하는 웹 환경에서 유리하다.
그러나 실질적으로 eval 명령을 사용하면 외부에서 악성 코드가 유입될 수 있다.
대부분의 최신 웹 브라우저는 JSON 전용 파서 기능을 내장하고 있으므로 이런 기능을 사용하는 것이 더 안전할 뿐만 아니라 빠른 방법이다.
http://www.pickywebdesign.com/json-vs-xml-what-should-you-use
XML의 깔끔함으로, 대외적인 프로젝트를 할때는 XML을 주로 이용하나, 내부 프로젝트나 개인적으로는 JSON을 선호한다.
1. XML의 장점
작성하기가 간편하다(tag구조)
XML 사람이 읽기가 쉽다. (즉 각 장보들이 의미하는 바를 한눈에 보기가 좋다. DTD 등 XML자체의 기능을 확장할 여지가 많이 있다.
2. XML의 단점
문서의 양이 필요이상으로 많다.(실 데이터가 아닌 tag글자)
배열형식이나 반복구조의 경우 불필요한 데이터가 계속 해서 나타난다.
결국 이로인해 파싱이 힘들어지고 속도는 느려진다.
3. JSON의 장점
내용이 함축적으로 최소한의 정보만을 가지고있다.
그렇기때문에 XML대비 용량이 획기적으로 줄어들고 속도는 그만큼 빨라지게된다.
객체구조와 {} 배열구조의 [] 적절한 만남으로 아주 효율적인 데이터 구성이 가능하다.
파싱이 매우 간편하고, 때로는 일반적인 변수처럼 사용도 가능하다.
즉, 사용하기 쉽다.
4. JSON의 단점
내용이 함축적이다 보니 내용의 의미파악은 힘들수 있다.
아무래도 적은규격의 데이터 전송에 적합한 방식이기떄문에 XML보다는 빠르지만
대용량급의 데이터 송수신엔 부적합 모습도 있다.
'하루에하나씩 > 트렌드, 기초 IT 정보' 카테고리의 다른 글
L4/L7 Switch & OSI Layer (0) | 2015.10.22 |
---|---|
rpm (Redhat Package Manager) (0) | 2015.10.22 |
What Is A Mash Up? (0) | 2013.11.20 |
IMEI ( International Mobile Equipment Identity) (0) | 2013.07.24 |
GIS, POI , WGS84 (1) | 2013.07.24 |
Big Endian (0) | 2013.07.24 |
SSID 가 뭐죠? (2) | 2013.07.24 |
Batch Processing 이 뭐죠 (0) | 2013.07.24 |
MAC Address 가 뭐죠? (1) | 2013.07.24 |
M2M 이란 (Machine to Machine, 사물통신) (1) | 2013.07.20 |