:: ADVANCE ::
[JSON] 본문
[ 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