JSON(JavaScript Object Notation)은 경량의 DATA-교환 형식이다. 이 형식은 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성함에도 용이하다.JavaScript Programming Language,Standard ECMA-262 3rd Edition - December 1999의 일부에 토대를 두고 있다. JSON은 완벽하게 언어로 부터 독립적이지만 C-family 언어 - C, C++, C#, Java, JavaScript, Perl, Python 그외 다수 - 의 프로그래머들에게 친숙한 관습을 사용하는 텍스트 형식이다. 이러한 속성들이 JSON을 이상적인 DATA-교환 언어로 만들고 있다.
출처 : http://www.json.org/json-ko.html
- 단순 예제 ▼
- JSON 구조
- name/value 쌍으로 구성된다.
> 여러가지의 언어들에서 object, record, struct, dictionary, hashtable, 키를 가지는 리스트, 배열집합 처럼 얻어진다. - 값들이 리스트는 순서가 있다.
> 대부분의 언어들에서 array, vector, list, sequence 처럼 얻어진다. - JSON은 대부분의 지금의 언어를 통해 일반적인 데이타구조들이 지원된다.
- name/value 쌍으로 구성된다.
- JSON Object 표기법
- JSON Object는 name/value 쌍의 set은 순서가 없다.
- JSON Object는 { 로 시작하고 } 로 끝난다.
- 각각의 이름은 : 와 ,로 구분된 name/value 쌍의 형식을 따른다.
- JSON과 JavaScript
- JSON은 JavaScript의 객체 문자 표기의 부분집합이다.
> JSON은 JavaScript안에서 혼란스럽거나 야단스럽지 않게 사용될 수 있다.
- JSON은 JavaScript의 객체 문자 표기의 부분집합이다.
- JSON Object 예제
var myJSONObject = {"bindings": [ {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}, {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}, {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"} ] };
- 위의 예에서, JSON JavaScript 객체는 세개의 객체를 포함한 배열을 갖고있는, 각각은 "ircEvent","method","regex" 멤버들을 포함한 하나의 멤버 "bindings"를 포함하여 생성된다.
- 멤버들은 점(.) 이나 그아래 지시자들로 회수 할수 있다.
myJSONObject.bindings[0].method // "newURI"
- JavaScript 코드안에서 Text를 Object로 변환하기
var myObject = eva1('(' + myJSONtext + ')');
- eva1() 함수를 사용하여, JSON text를 JSON 객체로 변환한다.
> eva1()은 JavaScript 컴파일러에서 실행한다.
> JSON은 JavaScript의 서브셋으로 적합하다. 컴파일러는 text를 정확하게 변환하고, 객체 구조를 만든다.
- eva1() 함수를 사용하여, JSON text를 JSON 객체로 변환한다.
- 보안 & JSON Parser
// Include http://www.json.org/json.js var myObject = myJSONtext.parseJSON();
- eva1()은 컴파일 할 수 있고, 어떤 JavaScript 프로그램에서도 실행된다. 그래서 보안 이슈들(cross-site scripting)을 가질 수 있다.
> 소스를 신뢰할 수 있을때, eva1()을 사용해라. - 보안이 염려될 때 - 소스를 신뢰할 수 없을때 - JSON parser를 사용하는게 낫다.
> JSON parser는 JSON text를 승인할 수 있다. 그래서 좀더 안전하다.
- eva1()은 컴파일 할 수 있고, 어떤 JavaScript 프로그램에서도 실행된다. 그래서 보안 이슈들(cross-site scripting)을 가질 수 있다.
- Object를 Text로 변환하기
var myJSONText = myObject.toJSONString();
- 사용자는 JSON 객체를 JSON text로 변환할 수 있다.
- JSON은 주기적 데이타 구조를 지원하지 않는다.
> Do not give cyclical structures to the JSON stringifier
> 주기적 구조들을 JSON stringfier로 줄수 없다
'Front-end > Javascript' 카테고리의 다른 글
JavaScript - isNaN ? (0) | 2012.08.15 |
---|---|
JavaScript - 로딩바 (0) | 2012.08.15 |
jSon - Begin (0) | 2012.08.15 |
JavaScript - String replace() (0) | 2012.08.15 |
JavaScript - timer 시작 / 중지 (0) | 2011.09.06 |