본문 바로가기

Front-end/Javascript

JSON (JavaScript Object Notation)

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은 대부분의 지금의 언어를 통해 일반적인 데이타구조들이 지원된다.
  • JSON Object 표기법
    • JSON Object는 name/value 쌍의 set은 순서가 없다.
    • JSON Object는 { 로 시작하고 } 로 끝난다.
    • 각각의 이름은 : 와 ,로 구분된 name/value 쌍의 형식을 따른다.
  • 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를 정확하게 변환하고, 객체 구조를 만든다.
  • 보안 & 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를 승인할 수 있다. 그래서 좀더 안전하다.
  • 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