JSON   JavaScript Object Notation   자바스크립트 객체 표기법

(2019-03-22)

JSON 객체, JSONP

Top > [기술공통]
[기초과학]
[진동/파동]
[방송/멀티미디어/정보이론]
[전기전자공학]
[통신/네트워킹]
[정보기술(IT)]
[공업일반(기계,재료등)]
[표준/계측/품질]
[기술경영]
통신/네트워킹 >   1. 통신 이란?
  2. 신뢰적 통신
[통신이론]
[선로/전송]
[통신망 일반]
[회선교환(PSTN)]
[무선/이동통신]
[광통신]
[인터넷/데이터통신]
인터넷/데이터통신 >   1. 데이터통신망
  2. 인터넷
  3. 데이터 네트워크 설계
[데이터 단위]
[프로토콜/계층]
[데이터 링크]
[TCP/IP]
[라우팅]
[인터넷 QoS]
[인터넷 관리]
[인터넷 응용]
[인터넷 기타]
[패킷교환(PSN)]
[인터넷 관련 기관]
인터넷 응용 > [NetBIOS]
[DNS]
[가상단말]
[FTP]
[전자메일]
[VoIP]
[웹기술]
[VPN]
[무선인터넷]
[전자상거래]
[개인 컨텐츠]
[인터넷 기타 응용]
웹기술 >   1. 웹 이란?
  2. 하이퍼텍스트
[웹 구성]
[HTTP]
[웹 페이지]
[웹 식별]
[웹 서비스]
[차세대 웹]
[웹기술 기타일반]
웹 서비스   1. 웹 서비스
  2. JSON
  3. XML
  4. SOAP
  5. UDDI
  6. WSDL

Top > [기술공통]
[기초과학]
[진동/파동]
[방송/멀티미디어/정보이론]
[전기전자공학]
[통신/네트워킹]
[정보기술(IT)]
[공업일반(기계,재료등)]
[표준/계측/품질]
[기술경영]
정보기술(IT) >   1. 정보기술
[전산기초]
[컴퓨터구조]
[프로그래밍]
[데이터베이스]
[소프트웨어 공학]
[운영체제]
[정보보호/보안]
[IT 기타기술]
프로그래밍 >   1. 프로그램,프로그래밍
[프로그래밍 언어론]
[구조적 프로그래밍]
[객체지향 프로그래밍]
[자료표현코드]
[자료구조]
[알고리즘]
[시스템 소프트웨어]
[프로그래밍언어 종류]
[프로그래밍 기타일반]
프로그래밍언어 종류 >   1. 프로그래밍 언어
[C]
[C++]
[자바(Java)]
[자바스크립트]
[PHP]
[파이썬]
[(기타 언어)]
자바스크립트 >   1. JavaScript
  2. 기초 문법
[JS 변수,타입]
[JS 연산자]
[JS 함수]
[JS 객체]
[JS 배열]
[JS 활용]
[JS 웹문서 제어]
JS 웹문서 제어 >   1. 웹문서 내 JS
  2. 동일 출처 정책
[JS Window 객체]
[JS DOM 제어]
[JS 이벤트]
[Ajax]
[jQuery]
Ajax   1. Ajax
  2. XMLHttpRequest 객체
  3. XHR 프로퍼티,메소드,이벤트
  4. JSON

1. JSON (JavaScript Object Notation)자바스크립트에서의 객체 표기 방법을 기반으로 한 데이터 형식
     - 다양한 형식으로 구조화된 데이터를 직렬화시킨 텍스트 포멧
     - 각 데이터(토큰)를 `속성(Property)`과 `값(Vaule)`의 쌍으로 표현

  ㅇ 비록 명칭에서 Javascript가 붙었지만, 
     - 자바스크립트 이외에도, 다양한 응용 프로그램 또는 웹 서비스 또는 서버/클라이언트 간의
       가벼운 데이터 교환에 이용됨

  ㅇ 표준 : RFC 8259 (The JavaScript Object Notation (JSON) Data Interchange Format)


2. JSON 특징문법이 직관적이고, 가벼움
  ㅇ 원래는, 웹 서버웹 브라우저자바스크립트 간에 데이터 전송의 수단으로 쓰였음
  ㅇ 현재는,  상에서 구조화된 문서 교환을 위한 공통 포멧으로 정착되고 있음
     - 폭넓은 언어라이브러리에서 지원됨


3. JSON 데이터 형식/형태객체 리터럴 표기법을 기반으로 함
     - 각 데이터(토큰)는, 콜론(:)으로 구분되는, `속성`과 `값`으로 구성 됨

  ㅇ `속성`은, 콜론 좌측에 큰 따옴표(") 로 둘러싸인 문자열
     - 작은 따옴표(') 사용 불가

  ㅇ `값`은, 다음과 같은 종류들이 가능
     - 문자열 : 큰따옴표(")로 둘러싸여 표현됨
     - 숫자   : 그냥 숫자 자체로 표현됨
     - 배열   : 대괄호([ ])로 둘러싸이며, 각 요소는 쉼표(,)로 구분되어 표현됨
     - 객체   : 중괄호({ })로 둘러싸여 표현됨
     - 진리값 : true 또는 false

  ※ JSON 데이터(토큰) 사이사이에,
     - 띄어쓰기,으로 보기 좋게 표현 가능하나, 주석과 같은 설명문 요소는 불가


4. JSON 데이터 처리를 위한 언어함수/메소드자바스크립트 메소드
     - objJS = parse(jsonString, function (key, value) { })
        . jsonString : JSON 형식의 문자열 (객체 리터럴)
        . key,value : 키,값의 쌍으로된 매개변수
        . JSON 형식 데이터를 자바스크립트 객체 형식으로 반환
           .. 즉, JSON 데이터를 자바스크립트 객체 그대로 사용이 가능
     - jsonString = stringify(objJS)
        . 자바스크립트 객체(objJS)를 JSON 형식의 문자열로 변환시켜 줌

  ㅇ PHP 함수
     - PHP 배열 = json_decode(jsonString)
     - jsonString = json_encode(PHP 배열)


5. JSON 사용 例PHP
     - 임의 형식의 데이터
        . 객체 형식 例) aString = { "name1" : "value1" , "name2" : "value2" , ... }
        . 배열 형식 例) aString = [ "name1" : "value1" , "name2" : "value2" , ... ]

     - 임의 형식의 데이터 -> PHP 배열
        .  $arr = json_decode ( $aString );

     - PHP 배열 -> JSON 형식의 데이터
        .  HTML 헤더 (server -> client)
           
<meta http-equiv='content-type' content='application/json'>
<meta charset='utf-8'>
. echo json_encode ( $arr, JSON_UNESCAPED_UNICODE ); ㅇ Javascript - JSON 형식의 데이터(jsonString) -> 자바스크립트 객체(objJS) . var objJS = JSON.parse ( jsonString ); - 자바스크립트 객체(objJS) -> JSON 형식의 데이터(jsonString) . var jsonString = JSON.stringify ( objJS ); - ajax 호출 例 (client -> server)
 $.ajax({
   url: url,
   type: 'POST',
   contentType:'application/json',
   dataType:'json',
   data: JSON.stringify(obj),
   success: function(result){
     ...
   }
});
※ [참고] ☞ JSON 구현 예시 참조 6. JSONP (JSON with Padding) ㅇ (동일 출처 정책에 제한 받지 않음) - 타 서버에 저장된 *.js 파일 내에, - 자바스크립트 함수 내 인수로써 저장된 JSON 형식 데이터를 갖고 있으면서, - 클라이언트에 정의된 동일 함수를 실행하면, - 원격 타 서버에 있는 그 함수의 인수(파라미터)로써 데이터가 전달되는 구조 ㅇ 버튼 클릭 등 해당 이벤트가 발생하면, - 타 서버의 스크립트를 가져오기 위한 script 요소를 생성하고, - 원격 타 서버는 JSON 데이터를 포함한 함수 반환값을 클라이언트에 응답하면, - 클라이언트는 그 반환값을 콜백함수에서 처리하는 형태


[웹 서비스] 1. 웹 서비스 2. JSON 3. XML 4. SOAP 5. UDDI 6. WSDL

 
        최근수정     요약목록     참고문헌