• <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>

            逛奔的蝸牛

            我不聰明,但我會(huì)很努力

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

            JSON技術(shù)介紹

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

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

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

            JSON的優(yōu)點(diǎn)

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

            JSON語法是一種用于傳輸和生成數(shù)據(jù)的協(xié)定,很類似于C家族的語言,所以很容易被C家族的語言所解析。
            對(duì)象:對(duì)象包含再{}之間
            屬性:采用Key-Value對(duì)來表示。屬性之間使用逗號(hào)分開。  string : value 
            數(shù)組:數(shù)組存放再[]之間   [ elements ] 
            元素:元素之間用逗號(hào)分開
            值:值可以是字符串,數(shù)字,對(duì)象,數(shù)組,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 的作用是格式化數(shù)據(jù)內(nèi)容。如果我們不用XML還有什么更好的方法嗎?這個(gè)答案是JSON。介紹JSON之前我先介紹一下JavaScript這門腳本語 言。腳本語言自身有動(dòng)態(tài)執(zhí)行的天賦。即我們可以把想要執(zhí)行的語句放在字符串里,通過eval()這個(gè)動(dòng)態(tài)執(zhí)行函數(shù)來執(zhí)行。字符串里的內(nèi)容會(huì)像我們寫的腳本 一樣被執(zhí)行。
            <HTML>
            <HEAD>
             <TITLE>eval example 1</TITLE>
            </HEAD>
            <BODY>
             <script>
              str = "alert('hello')";
              eval(str);
             </script>
            </BODY>
            </HTML>  
            打開頁面會(huì)彈出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>
            如果我們?cè)诤笈_(tái)異步傳來的文本是JavaScript的聲明語句,那么不是一條eval方法就能解析了?對(duì)于解析復(fù)雜的XML,這樣的效率是多么大的提高啊!現(xiàn)在就來告訴你什么是JSON:JavaScript Object Notation。我更愿意把它翻譯為JavaScript對(duì)象聲明。比如要從后臺(tái)載入一些通訊錄的信息,如果寫成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"
            }
            ]
            簡單的不只是表達(dá)上,最重要的是可以丟棄讓人暈頭轉(zhuǎn)向的DOM解析了。因?yàn)橹灰螶avaScript的聲明規(guī)范,JavaScrip會(huì)自動(dòng)幫你解析好 的。Ajax中使用JSON的基本方法是前臺(tái)載入后臺(tái)聲明JavaScript對(duì)象的字符串,用eval方法來將它轉(zhuǎn)為實(shí)際的對(duì)象,最后通過 DHTML更新頁面信息。
            posted on 2010-06-05 02:47 逛奔的蝸牛 閱讀(458) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 其他編程
            久久精品无码专区免费| 亚洲AV无码久久精品狠狠爱浪潮| 欧美成人免费观看久久| 99久久免费国产精品| 久久久久一区二区三区| 久久99精品久久久久久hb无码| 久久久一本精品99久久精品66| 久久精品国产亚洲AV大全| 无码人妻久久一区二区三区| 亚洲va久久久噜噜噜久久男同| 久久婷婷国产剧情内射白浆 | 亚洲人成无码www久久久| 99久久精品免费看国产免费| 爱做久久久久久| 久久久WWW成人免费毛片| 久久综合伊人77777麻豆| 欧美大战日韩91综合一区婷婷久久青草 | 亚洲欧美另类日本久久国产真实乱对白| 国产精品久久久久久久久久免费| Xx性欧美肥妇精品久久久久久| 久久婷婷国产麻豆91天堂| 久久最新精品国产| 欧美麻豆久久久久久中文| 亚洲国产视频久久| 亚洲av伊人久久综合密臀性色| 777米奇久久最新地址| 激情综合色综合久久综合| 伊人久久大香线蕉综合5g| 麻豆AV一区二区三区久久 | 亚洲精品99久久久久中文字幕 | 中文字幕久久精品| 久久午夜无码鲁丝片| 大美女久久久久久j久久| 亚洲精品综合久久| 久久亚洲精品成人AV| 久久国产香蕉一区精品| 日韩AV无码久久一区二区| 久久久黄片| 久久婷婷国产麻豆91天堂| 7777精品久久久大香线蕉| 久久国产福利免费|