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

(2019-03-22)

JSON 객체, JSONP

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

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

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 데이터를 포함한 함수 반환값을 클라이언트에 응답하면, - 클라이언트는 그 반환값을 콜백함수에서 처리하는 형태


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

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