:: ADVANCE ::

[JSON] 본문

language

[JSON]

KSJ14 2015. 3. 8. 04:24
반응형

[ JSON ]


JSON - JavaScript Object Notation


JSON은 text format 기반의 경량 데이터 변환 포맷이다.

프로그래밍 언어에 독립적이며, C언어 계열에 익숙한 데이터 구조 형식을 취하고 있다.


JSON은 두가지 포맷을 가지고 있는데,

첫째는 name / value 쌍의 collection data 구조이다. 

  (프로그래밍 언어로 따지면 object, record, struct 쯤 된다고 본다.)

두번째는 정렬된 value의 list형태로써 프로그래밍 언어로 비유하자면 배열이라고 보면 된다고 한다.


JSON의 데이터 구조는 많은 프로그램 언어에 의해서 지원되고 있기 때문에 XML 보다는 이기종 시스템 간의 이상적인 선택이 될 수 있을 것이다. 추가적으로 JSON은 표준 Javascript의 부류이므로 모든 웹 브라우저간에도 양립할 수 있다.


다음은 JSON의 data 구조이다.




Object는 {}로 표기한다.

name/value 쌍이 ; 과 , 로 구분되어 있으며, 순서는 없다.


Array은 []로 표기한다.

배열은 정렬된 value가 ,에 의해 구분되며, value값은 string(""으로 둘러싸여야 한다), 숫자, true or false, null, array가 올 수 있으므로 배열의 구조는 계층적이라고 할 수 있다.


스트링은 유니코드 조합 및 \(백래쉬 이스케이프)를 사용할 수 있으며, 

"을 사용하여 character를 표현할 수 있다.

스트링과 숫자는 C언어 혹은 Java의 스트링과 거의 흡사하지만 8진수 및 16진수 포맷은 지원하지 않는다.

공백을 name과 value 사이사이에 사용할 수 있다.


예를 들어 Employ 라는 클래스의 인스턴스를 JSON을 이용해서 표현하면

1
2
3
4
5
6
var employee = {
    "firstName"        :John,
    "lastName"        :Doe,
    "employNumber"    :123,
    "title"            :"Manager"
}
cs


그러면 위 표현을 Object 속성을 이용해서 다음과 같이 다룰 수 있다.

1
2
3
var lastName = employee.lastName;    // lastName 에 접근
var title = employee.title;            // title 에 접근
employee.employeeNumber = 456;        // employeeNumber 를 456으로 수정
cs


JSON의 인코딩은 XML 인코딩보다 가볍다. 따라서 network을 통해서 큰 데이터가 오고가는 상황에서는 많은 퍼포먼스에 차이가 있을 것이다. JSON site에 가보면 14개 이상의 Server쪽 application을 다루는 프로그래밍 언어에서 JSON을 사용할 수 있게끔 준비가 되어 있다.



위 글은 블로그를 참고로 인용한 글이며 예제 코드도 존재한다.

[참고] http://campus79.tistory.com/21



반응형
Comments