JSON(JS Object Notation)

JSON(JavaScript Object Notation) 이란 ?

MorningPhys 2015. 7. 17. 19:08

1. JSON(JavaScript Object Notation)
     - 경량(Lightweight)의 data 교환 형식임
     - 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성함에도 용이함

 

2. JSON의 구조
     - 이름/값의 쌍으로 된 묶음으로 object, record, struct, dictionary, hash table, keyed list,
        associative array로 실현됨
     - 정렬된 값들의 리스트로 대부분의 언어에서 array, vector, list, sequence로 실현됨

3. JSON의 형식

 

 

 

4. JSON의 이점

- JSON 객체에는 자료형이 부여되므로 별도의 타입 시스템을 만들 필요가 없음

- 데이타를 파싱할 필요가 없음. name/value의 간단한 구조의 형태로 표현된 데이타를 responseText로 받아 별도의 파서없이 사용하면 됨

- JSON은 매우 유연하기도 하며 데이타들의 이름을 교체해서 사용할 수도 있음

- 텍스트 형태이기 때문에 매우 빨리 처리함

- <script> 태그의 src attribute에 서버의 url을 명시하기만 하면 어떤 서버에서도 데이타를 가져올 수 있음

 

* JSON (JavaScript Object Notation)

- 데이터를 저장하고 표현할 목적으로 사용되는 것

- 언어가 달라도 모두 사용 가능

- XML은 정보를 저장하기 위한 불필요 공간이 필요한데 반해서 JSON은 최소한의 정보를 저장한다.

= <name> 황의진 </name>

    <name> 황의진

= "name" : "황의진"

       키            

- 배열로 사용가능하고, 객체로도 사용가능하다.

- ECMAScript 262의 문법을 따른다.

- JavaScript 에서 사용할때에는 eval() 함수를 가지고 객체로 만들어서 사용.

  eval(" ' "+responseText|" ' ")

- JSON 문법 (단순 객체로 저장할 때)

                           { 키 : 값,  키 : 값 }

  

   ┌JSON객체 ↓

var a = eval(             );

      └ a.키

 

var info = eval(" ' {name:황,addr:오류} ' ");

info.name        info.addr

     황                오류

 

* JSON 배열

[  ] - 값의 배열

{ 키: [값, ... ], ... };

var info = eval(" ' {name:[황의진, 천재] , addr:오류동} ' ");

info.name[0]

황의진

info.name[1]

천재

[ ] - JSON Object의 배열

[{키, 값}, {키, 값} ...];

var info = eval (" ' [ {name:황,addr:오류}, {name:임, addr:안양}] ' ")

info[0].name // 황

info[1].name // 임

 

 

JSON - 간단한 예제 (HTML with JavaScript)

 

books의 정보는 title, author, isbn으로 되어 있습니다.

JSON으로 해당정보를 얻으려면 아래와 같이 사용하면 됩니다.

<html>

<head>

<title>JSON Test</title>

<script type="text/javascript" language="JavaScript">

function jsonTest()

{

var jsonData = {"books": [

{"title":"Hyperion", "author":"Dan Simmons", "isbn":"0553283685"},

{"title":"The Stars My Destination", "author":"Alfred Bester", "isbn":"0679767800"},

{"title":"Black House", "author": ["Stephen King", "Peter Straub"], "isbn":"0345441036"},

{"title":"The Golden Compass", "author":"Philip Pullman", "isbn":"0679879242"},

]};

 

alert(jsonData.books[1].author); // Alfred Bester

alert(jsonData.books[3].isbn); // 0679879242

alert(jsonData.books[2].isbn); // 0345441036

alert(jsonData.books[0].author); // Dan Simmons

alert(jsonData.books[2].title); // Black House

alert(jsonData.books[2].author[1]); // Peter Straub

}

</script>

</head>

 

<body>

<input type="button" value="Test" name="Test" onClick="jsonTest();" />

</body>

</html>

 

[출처] http://vincentkng.blog.me/10091969528

[출처] [JSON] JSON (JavaScript Object Notation)|작성자 주한길

반응형