차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:json [2017/08/23 01:26] – [기본문법] V_Ltech:json [2017/08/23 01:35] (현재) – [단점] V_L
줄 1: 줄 1:
 {{tag>json}} {{tag>json}}
 ====== JSON ====== ====== JSON ======
-JSON(제이슨JavaScript Object Notation)은 속성-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷이다. 특히, 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법으로 알려져 있다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수값을 표현하는 데 적합하다. 사람도 이해하기 쉽고 기계도 이해하기 쉬우면서 데이터의 용량이 작다. 이런 이유로 최근에는 JSON이 XML을 대체해서 설정의 저장이나 데이터를 전송등에 많이 사용된다+JSON(제이슨JavaScript Object Notation)은 속성-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷이다. 특히, 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법으로 알려져 있다.  
 + 
 +자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수값을 표현하는 데 적합하다. 사람도 이해하기 쉽고 기계도 이해하기 쉬우면서 데이터의 용량이 작다. 이런 이유로 최근에는 JSON이 XML을 대체해서 설정의 저장이나 데이터를 전송등에 많이 사용된다
  
 본래는 자바스크립트 언어로부터 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷이다. 즉, 프로그래밍 언어나 플랫폼에 독립적이므로, 구문 분석 및 JSON 데이터 생성을 위한 코드는 C, C++, C#, [[tech:java|자바]], [[tech:javascript|자바스크립트]], 펄, [[tech:python|파이썬]] 등 수많은 프로그래밍 언어에서 쉽게 이용할 수 있다. 본래는 자바스크립트 언어로부터 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷이다. 즉, 프로그래밍 언어나 플랫폼에 독립적이므로, 구문 분석 및 JSON 데이터 생성을 위한 코드는 C, C++, C#, [[tech:java|자바]], [[tech:javascript|자바스크립트]], 펄, [[tech:python|파이썬]] 등 수많은 프로그래밍 언어에서 쉽게 이용할 수 있다.
줄 15: 줄 17:
  
  
-<file json>+<file json >
 { {
     "member": [     "member": [
줄 33: 줄 35:
 } }
 </file> </file>
 +=====단점=====
 +유연함이 문제가 될 수 있다. 보내는 자료에 대한 제약이 없기 때문에,  AJAX 는 단순히 데이터만이 아니라 javascript 그 자체도 전달할 수 있다. 무슨 말이냐면 json데이터라고 해서 받았는데 그게 단순 데이터가 아니라 자바스크립트가 될 수도 있고, 그게 실행 될 수 있다는 것이다.
 +
 +>데이터인 줄 알고 받았는데 악성 스크립트!!
 +
 +JSON 관련 라이브러리를 따로 사용하는 이유가 이것이다. 받은 내용에서 순수하게 데이터만 추출하기 위한 라이브러리이다.
  
 +또 다른 JSON의 한계는 JSON으로 가져올 수 있는 데이터는 해당 자바스크립트가 로드된 서버의 것에 한정된다는 것이다.  
 +    
 =====참조===== =====참조=====
  
   * http://json.org/json-ko.html   * http://json.org/json-ko.html
   * [[json php]]참조   * [[json php]]참조