• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::

            JSON技術介紹

            XML——這種用于表示客戶端與服務器間數據交換有效負載的格式,幾乎已經成了Web services的同義詞。我們知道AJAX技術能夠使得每一次請求更加迅捷,對于每一次請求返回的不是整個頁面,也僅僅是所需要返回的數據。然而,由于Ajax和REST技術的出現影響了應用程序架構,這迫使人們開始尋求`XML的替代品,如:JavaScript Object Notation(JSON)。

            JSON 作為一種更輕、更友好的 Web services客戶端的格式(多采用瀏覽器的形式或訪問 REST風格 Web服務的Ajax應用程序的形式)引起了 Web 服務供應商的注意。通常AJAX通過返回XML格式的數據,然后再通過客戶端復雜的JavaScript腳本解析和渲染這些XML格式的數據。JSON(讀Jason)是為了能夠使得數據格式成為一種標準,更簡單的被JavaScript解析。

            本文將闡述JSON在Web services設計中備受推崇的原因,以及它作為XML替代方案的主要優勢和局限性。文中還會深入探討:隨著相應的Web 服務客戶端選擇使用JSON,如何才能便捷地在Java Web services中生成JSON輸出。
            json的官方文檔:http://www.json.org/json-zh.html

            JSON的優點

            • 輕量級的數據交換格式
            • 人們讀寫更加容易
            • 易于機器的解析和生成
            • 能夠通過JavaScript中eval()函數解析JSON
            • JSON支持多語言。包括:ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua.

            JSON語法是一種用于傳輸和生成數據的協定,很類似于C家族的語言,所以很容易被C家族的語言所解析。
            對象:對象包含再{}之間
            屬性:采用Key-Value對來表示。屬性之間使用逗號分開。  string : value 
            數組:數組存放再[]之間   [ elements ] 
            元素:元素之間用逗號分開
            值:值可以是字符串,數字,對象,數組,true,false,null

            例子:
            JSON
            {"menu": {  
               "id": "file",
               "value": "File:",  
               "popup": {  
                 "menuitem": [ 
                   {"value": "New", "onclick": "CreateNewDoc()"}, 
                   {"value": "Open", "onclick": "OpenDoc()"},  
                   {"value": "Close", "onclick": "CloseDoc()"} ] 
               } 
            }}
            XML
            <menu id="file" value="File" > 
               <popup> 
                 <menuitem value="New" onclick="CreateNewDoc()" /> 
                 <menuitem value="Open" onclick="OpenDoc()" /> 
                 <menuitem value="Close" onclick="CloseDoc()" /> 
               </popup> 
            </menu>
            XML 的作用是格式化數據內容。如果我們不用XML還有什么更好的方法嗎?這個答案是JSON。介紹JSON之前我先介紹一下JavaScript這門腳本語 言。腳本語言自身有動態執行的天賦。即我們可以把想要執行的語句放在字符串里,通過eval()這個動態執行函數來執行。字符串里的內容會像我們寫的腳本 一樣被執行。
            <HTML>
            <HEAD>
             <TITLE>eval example 1</TITLE>
            </HEAD>
            <BODY>
             <script>
              str = "alert('hello')";
              eval(str);
             </script>
            </BODY>
            </HTML>  
            打開頁面會彈出hello窗口。我們可以在字符串中放任何腳本語句,包括聲明語句,等等一系列東西,比如:
            <HTML>
            <HEAD>
            <TITLE>eval example 2</TITLE>
            </HEAD>
            <BODY>
            <script>
             define = "{name:'Michael',email:'17bity@gmail.com'}";
             eval("data = "+define);
             alert("name:"+data.name);
             alert("email:"+data.email);
            </script>
            </BODY>
            </HTML>
            如果我們在后臺異步傳來的文本是JavaScript的聲明語句,那么不是一條eval方法就能解析了?對于解析復雜的XML,這樣的效率是多么大的提高啊!現在就來告訴你什么是JSON:JavaScript Object Notation。我更愿意把它翻譯為JavaScript對象聲明。比如要從后臺載入一些通訊錄的信息,如果寫成XML,如下:
            <contact>
             <friend>
              <name>Michael</name>
              <email>17bity@gmail.com</email>
              <homepage>http://www.jialing.net</homepage>
             </friend>
             <friend>
              <name>John</name>
              <email>john@gmail.com</email>
              <homepage>http://www.john.com</homepage>
             </friend>
             <friend>
              <name>Peggy</name>
              <email>peggy@gmail.com</email>
              <homepage>http://www.peggy.com</homepage>
             </friend>
            </contact>
            而寫成JSON呢,就如下面:
            [
            {
             name:"Michael",
             email:"17bity@gmail.com",
             homepage:"http://www.jialing.net"
            },
            {
             name:"John",
             email:"john@gmail.com",
             homepage:"http://www.jobn.com"
            },
            {
             name:"Peggy",
             email:"peggy@gmail.com",
             homepage:"http://www.peggy.com"
            }
            ]
            簡單的不只是表達上,最重要的是可以丟棄讓人暈頭轉向的DOM解析了。因為只要符合JavaScript的聲明規范,JavaScrip會自動幫你解析好 的。Ajax中使用JSON的基本方法是前臺載入后臺聲明JavaScript對象的字符串,用eval方法來將它轉為實際的對象,最后通過 DHTML更新頁面信息。
            posted on 2010-06-05 02:47 逛奔的蝸牛 閱讀(458) 評論(0)  編輯 收藏 引用 所屬分類: 其他編程
            久久精品国产99久久丝袜| 久久精品成人欧美大片| 麻豆av久久av盛宴av| 久久精品无码专区免费东京热| 久久亚洲国产成人影院网站| 久久久婷婷五月亚洲97号色 | 亚洲伊人久久大香线蕉综合图片 | av无码久久久久不卡免费网站 | 久久成人国产精品一区二区| 精品久久777| 久久久午夜精品福利内容| 国产精品美女久久久久网| 欧美一区二区三区久久综| 国产69精品久久久久9999APGF| 久久99精品国产一区二区三区| 久久精品无码一区二区日韩AV| 亚洲va久久久噜噜噜久久男同 | 亚洲AV无码久久精品成人| 91麻豆精品国产91久久久久久| 亚洲国产精品无码成人片久久| 久久精品国产精品亚洲| 欧美va久久久噜噜噜久久| 欧美激情精品久久久久久久九九九 | 人妻无码αv中文字幕久久| 91精品国产91热久久久久福利 | 久久精品国产精品亚洲下载| 久久精品国产亚洲77777| 精品久久久无码21p发布| 久久无码AV一区二区三区| 精品人妻伦九区久久AAA片69| 91精品国产高清91久久久久久| 亚洲国产日韩综合久久精品| 日韩亚洲国产综合久久久| 国产精品热久久毛片| 中文字幕精品无码久久久久久3D日动漫| 久久久人妻精品无码一区| 国产精品视频久久久| …久久精品99久久香蕉国产| 99久久99久久久精品齐齐| 麻豆成人久久精品二区三区免费| 伊人久久大香线蕉av一区|