자바/Web2008. 6. 26. 02:26
원문 http://blog.naver.com/forioso/10009590986

1 문서 개요 #

  • 작성일 : 2006/04/04
  • 작성자 : http://www.0bin.net/moniwiki/wiki.php/Specification/OPML?action=download&value=mail.png
  • 문서 내용 : AJAX XMLHTTPREQUEST에서 데이터 교환 형식으로 사용되는 JSON에 대한 정리

2 개요 #

  • Javascript Object Notation.
  • lightweight data 교환 형식.
  • 사람이 읽고 쓰기 쉬움.
  • 기계가 파싱하고 생성하기 쉬움.

3 형식 #

3.1 Object #

  • 중괄호({})로 시작하고 끝남
  • member : 문자열과 값으로 구성되어 있고 콜론(:)으로 구분, 각 멤버들은 콤마(,)로 구분
  • array : 대괄호([])로 시작하고 끝나며 각 값은 콤마(,)로 구분
  • value : 값은 string, number, object, array, true, false, null 사용 가능
  • string : 문자열은 쌍따옴표(")로 둘러 쌓여야 하며 Unicode character 또는 일반적인 escape 문자(\", \\, \/, \b, \f, \n, \r, \t, \u four-hex-digits)를 포함한다.
    oav.gif
    sn.gif

3.2 예시 #

{

"Image": {

"Width":800,

"Height":600,

"Title":"View from 15th Floor",

"Thumbnail":{

"Url":"http:/\/scd.mm-b1.yimg.com\/image\/481989943",

"Height": 125,

"Width": "100"

},

"IDs":[ 116, 943, 234, 38793 ]

}

}
  • 출처 : Yahoo JSON 예제
  • 예제에서 Image는 최상위 object이고 모든 다른 데이터들은 이 object의 멤버.
  • Width, Height, Title는 숫자와 문자열 데이타를 포함하고 있는 기본적인 멤버.
  • Thumbnail은 Url, Height, Width를 멤버로 포함하고 있는 중첩 object.
  • ?IDs는 숫자 값을 가지고 있는 array.
  • Url 문자열 값에서 슬래쉬(/)가 escape 됨에 주의

4 참고 사이트 #

'자바 > Web' 카테고리의 다른 글

드디어 JavaFX 1.0 정식 Release...  (0) 2008.12.09
Eclipse Ganymede 출동~  (0) 2008.07.02
JSON  (0) 2008.06.26
JSON vs XML  (0) 2008.06.26
XML과 JSON 사이에 변환 패턴  (0) 2008.06.26
JavaScript 객체 JSON  (0) 2008.06.26
Posted by 양군이당
TAG JSON

댓글을 달아 주세요

자바/Web2008. 6. 26. 02:25
* JSON(http://www.crockford.com/JSON/)은 자바스크립트 객체 표기(literal object notation
of JavaScript)를 따르는 가벼운 데이터 교환포맷이다.
(JavaScript Object Notation (JSON) is a lightweight data inerchange format )

* Rule: "Use XML to exchange structured document, use JSON to exchange data."

* JSON을 어디에 써먹을까?
Ajax 기반 프로그래밍시 응답 xml을 핸들링해야 하는데, DOM 트리를 통해 데이터에 접근하는 것보다 동일한 구조를 갖는 javascript 객체로써 다루는 것이 훨씬 편하다.(어떤 언어를 사용하더라도
DOM을 직접 다루는 것은 고통스럽다.)

예를 들어 아래와 같은 xml포맷 데이터를 XMLHTTPRequest를 통해 받았다고 하자.
(xmlhttp.responseXML => 브라우저 내장 파서에 의해 자동파싱된 js DOM 트리 반환)

<response>
  <method>checkName</method>
  <result>yes</result>
</response>

여기서 method 엘리먼트의 값을 뽑으려면 이런식의 코딩이 필요하다. 지랄맞다.

var response = xmlhttp.responseXML.documentElement
alert("메소드명 : " + response.getElementsByTagName('method')[0].firstChild.data);

그럼 동일한 구조의 데이터를 아래처럼 JSON 포맷으로 받았다고 하자.
(xmlhttp.responseText => 응답 text를 그대로 반환)

{"response": {
     "method": "checkName",
     "result": "yes"
 }};

이제 method의 값을 뽑아보자. 해피하다.

var jsonObj = eval('return ' + xmlhttp.responseText);
alert("메소드명 : " + jsonObj.response.method);

즉, ajax를 이용하는 경우 서버단에서 XML 포맷으로 보내지 말고 JSON 포맷으로 보내면
자바스크립트에서 데이터를 쉽게 액세스할 수가 있다는 얘기다.
(Ajax with JSON instead of XML)

출처 : http://blog.naver.com/ecogeo/100012393620

'자바 > Web' 카테고리의 다른 글

Eclipse Ganymede 출동~  (0) 2008.07.02
JSON  (0) 2008.06.26
JSON vs XML  (0) 2008.06.26
XML과 JSON 사이에 변환 패턴  (0) 2008.06.26
JavaScript 객체 JSON  (0) 2008.06.26
Java 객체를 이용해서 JSON객체를 위한 텍스트 생성하기  (0) 2008.06.26
Posted by 양군이당

댓글을 달아 주세요

자바/Web2008. 6. 26. 02:21
출처 정원희's blog, season 2006 start! | 딱따구리
원문 http://blog.naver.com/nobodyuknow/100028605773


Pattern XML JSON Access
1
"e": null o.e
2text "e": "text" o.e
3
"e":{"@name": "value"} o.e["@name"]
4text "e": { "@name": "value", "#text": "text" } o.e["@name"] o.e["#text"]
5text text "e": { "a": "text", "b": "text" } o.e.a o.e.b
6text text "e": { "a": ["text", "text"] } o.e.a[0] o.e.a[1]
7text text "e": { "#text": "text", "a": "text" } o.e["#text"] o.e.a

출처 Night Sidunge | 시둥이
원문 http://blog.naver.com/way133/60029787010

출처 : http://cafe.naver.com/webagencyalone.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=25

xml -> json


1. [패턴1]

<?xml version="1.0"  encoding="Shift_JIS" ?>

  <rss>

    <channel>

      <title>111</title>
      <link>222</link>

    </channel>

  </rss>


  json으로 바꾸면...


{


   rss: {
   

     channel: {


        title: "111",
      link: "222"


     }


   }

}


javascript에서 json변수의 요소를 가저올때(json변수명이 data일 경우)

data.rss.channel.title    ---->111  다음과 같이 써도 동일 data["rss"]["channel"]["title"]

data.rss.channel.link    ---->222  다음과 같이 써도 동일 data["rss"]["channel"]["link"]


2.[패턴2]

<?xml version="1.0"  encoding="Shift_JIS" ?>

  <rss>

    <channel>

      <title>111</title>

      <title>222</title>
      <link>333</link>

    </channel>

    <channel>

      <title>444</title>

      <title>555</title>
      <link>666</link>

    </channel>

  </rss>


json으로 바꾸면...


{


  rss: {


    channel: [
{
       


      title: [
          "111",
          "222"
        ],



      link: "333"
     

    },


    {

  
   title: [
          "444",
          "555"
        ],




      link: "666"
      }]



  }

}


data.rss.channel[0].title[0]     --->111  다음과 같이 써도 동일 data["rss"]["channel"][0]["title"][0]

data.rss.channel[1].link         --->666  다음과 같이 써도 동일 data["rss"]["channel"][1]["link"]


3.패턴[3]

<?xml version="1.0"  encoding="Shift_JIS" ?>

  <rss version="2.0">

    <channel>

      <title>111</title>
      <link opt1="opt1111" opt2="opt222">222</link>

    </channel>

  </rss>


json으로 바꾸면...


{
 

  rss: {


    version: "2.0",

    channel: {


      title: "111",

      link: {


        opt1: "opt1111",
        opt2: "opt222",
        "#text": "222"


      }


     }

  }

}


data["rss"]["channel"]["link"]["#text"]   --->222

data.rss.channel.link.#text 로 하면...에러발생...

#가 파싱할때 예약어인거 같음..


4.패턴4

<?xml version="1.0"  encoding="Shift_JIS" ?>
  <rss version="2.0">
    <channel>
      <title aaa="111"/>
      <asdfsdf/>
    </channel>
</rss>


json으로 바꾸면...


{
  rss: {


     version: "2.0",


     channel: {
      title: { aaa: "111" }


     }


   }


 }



5.아래와같이 동일한 옵션명이 있으면 에러

<bb aa="11" aa="22"/>

옵션명에 :를 넣는경우는 xmlns로 정의된경우만 가능...이외에는 에러남...

아래와 같은 경우 옵션명에 :를 넣음

<?xml version="1.0"  encoding="utf-8" ?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Vertical="Center"/>
   <Borders/>
   <Font ss:FontName="MS Pゴシック" x:CharSet="128" x:Family="Modern" ss:Size="11"/>
   <Interior/>
   <NumberFormat/>
   <Protection/>
  </Style>
</Workbook>

'자바 > Web' 카테고리의 다른 글

JSON  (0) 2008.06.26
JSON vs XML  (0) 2008.06.26
XML과 JSON 사이에 변환 패턴  (0) 2008.06.26
JavaScript 객체 JSON  (0) 2008.06.26
Java 객체를 이용해서 JSON객체를 위한 텍스트 생성하기  (0) 2008.06.26
Tomcat 5.X 버전에서 한글 파라메터 쓰기  (0) 2008.06.26
Posted by 양군이당
TAG JSON, XML, 변환

댓글을 달아 주세요