中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
JavaScript之JSON詳解

向服務器發(fā)出Ajax請求時,可以以兩種不同的方式從服務器響應檢索數(shù)據(jù):一種是使用XMLHttpRequest對象的reponseXML屬性訪問XML格式的數(shù)據(jù);一種是XMLHttpRequest對象的responseText屬性訪問字符串格式的數(shù)據(jù)。當前,XML是進行數(shù)據(jù)傳輸?shù)臉藴收Z言,但是使用XML的缺點之一是很難對它進行解析并提取要添加到頁面的數(shù)據(jù)。


      JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,我們稱之為JavaScript對象表示法。使用JSON進行數(shù)據(jù)傳輸?shù)膬?yōu)勢之一是JSON實際上就是JavaScript。它基于ECMAScript第3版中JavaScript對象字面量語法子集的一種文本格式。這表示可以使用responseText從服務器中檢索JSON數(shù)據(jù),然后再使用JavaScript的eval()方法將JSON字符串轉換成JavaScript對象,那么,使用附加JavaScript就可以很地從該對象中提取數(shù)據(jù),而不需要處理DOM。


      另外,也有針對大部分編程語言(包括C++,C#,ColdFusion、Java、Perl、PHP和Python)的JSON庫,這些庫能將上述語言格式化數(shù)據(jù)轉換成JSON格式。


      盡管有許多宣傳關于XML如何擁有跨平臺,跨語言的優(yōu)勢,然而,除非應用于Web Services,否則,在普通的Web應用中,開發(fā)都經常為XML的解析作秀了腦筋,無論是服務器端生成或處理XML,還是客戶端用JavaScript解析XML,都常常導致復雜的代碼,極低的開發(fā)效率。實際上,對于大多數(shù)Web應用來說,根本不需要要復雜的XML來傳輸數(shù)據(jù),XML的擴展性很少具有優(yōu)勢,許多Ajax應用甚至直接返回HTML片段來構建動態(tài)Web頁面。和返回XML并解析它相比,返回HTML片段大大降低了系統(tǒng)的復雜性,但同時缺少了一定的靈活性。XML使用元素、屬性、實體和其他結構。JSON不是文檔格式,因此它不需要這些附加結構。因為JSON數(shù)據(jù)只包括“名-值”對(對象)或值(數(shù)組),所以JSON數(shù)據(jù)比同等的XML數(shù)據(jù)占用更少的空間,執(zhí)行速度更快。


      (一)JSON語法
      JSON建構于兩種結構:
      對象——名稱/值對的集合。不同的語言中,它被理解為對象,紀錄,結構,字典,哈希表,有鍵列表(keyed list),或者關聯(lián)數(shù)組。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”后跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。
      數(shù)組——值的有序列表。在大部分語言中,它被理解為數(shù)組。一個數(shù)組以“[”(左中括號)開始,“]”(右中括號)結束。值之間使用“,”(逗號)分隔。


      JSON沒有變量或其他控制結構。JSON只用于數(shù)據(jù)傳輸。
      JSON語法是基于對面字面量和數(shù)組字面量的JavaScript語法。當使用字面量時,將包括數(shù)據(jù)本身,但不包括生成數(shù)據(jù)的表達式。


      1、 數(shù)據(jù)類型
      JSON數(shù)據(jù)結構包含以下數(shù)據(jù)類型:字符、數(shù)字、布爾值(true/false)、null、對象,數(shù)組。
      JSON字符串必須使用雙引號括起來。它們使用標準的JavaScript轉義序列。因此在以下列字符的前面要添加一個反斜線:
      JSON具有以下這些形式:”(引號)、b(空格)、n(新行)、f(換頁)、r(回車)、t(水平定位)、u(為Unicode字符增加4個數(shù)位)、\(反斜線符號)、/(正斜杠符號)。


      2、對象字面量
      JSON使用字面量來表示對象,如果有一個以上的成員對象,則在JSON中,可以將其表示為一個包含擁有兩個對象的數(shù)組的對象。下列代碼顯示JOSN文本形式的member對象:

        {“memeber”:[

            {
                  “name”:”Tom”,
                  “age”:22,
                  “country”:”USA”
      },
      {
                  “name”:”WangMing”,
                  “age”:25,
                  “country”:”China”
      }

      }


     3、使用JSON解析器
      可以使用JSON解析器從對象和數(shù)組中創(chuàng)建JSON文本或者JSON文本中創(chuàng)建對象和數(shù)組。JSON站占www.json.rog/json.js上提供有JSON解析器,通過將下列代碼加入到頁面的頭部上即可使用。JSON解析器提供了兩個函數(shù):toJSONString()和parseJSON()。
      toJSONString()方法被添加到JavaScript Object和Array定義中,該方法能將JavaScript對象或數(shù)組轉換成JSON文本。不必將對象或數(shù)組轉換成字面量就能使用該方法。
      parseJSON()方法能從JSON文本中創(chuàng)建對象或數(shù)組。


      (二)使用XMLHttpRequest對象創(chuàng)建JSON數(shù)據(jù)請求
      1、創(chuàng)建請求
      如果直接請求服務器上一個JSON文件中的JSON數(shù)據(jù),則可以利用文件名來請求JSON文件。
      respone.open(“GET”,”classes.txt”,true);
      在這種情況下,classes.txt是JSON數(shù)據(jù)文件的名稱,request是創(chuàng)建用來存放XMLHttpRequest對象的變量。
      2、解析響應
      一旦接受服務器的JSON數(shù)據(jù),就可以采用兩種不同的方式解析該響應??梢允褂肑avaScript的內置函數(shù)eval(),或者為了進一步的安全,使用JSON解析器代替。
      eval()方法可以把JavaScript字符串當作參數(shù),還可以將該字符串轉換成對象,或作為命令動作。如果使用XMLHttpRequest對象的responseText屬性請求JSON數(shù)據(jù),那么使用eval()將JSON文本字符串轉換成JavaScript對象。因為JSON字符串常包包含花括號,所以用圓括號來括住JSON字符串,以表明字它是一個求值表達式,而不是一個要運行的命令。
      var jsonResp=request.responseText;
      jsonResp=eval(“(”+jsonResp+”)”);
      如果Web服務器既提供JSON數(shù)據(jù)也提供請求頁面,則適合選用eval()方法。如果涉及安全,則適合使用JSON解析器。JSON解析器只作用于JSON文本,并且不執(zhí)行其他JavaScript。在這種情況下,可以使用responseText,但要使用parseJSON()方法將JSON文本字符串轉換成JavaScript對象。要訪問parseJOSN函數(shù),需要要添加引用json.js文件到頁面中。
      var jsonResp=request.responseText;
      jsonResp=jsonResp.parseJSON();
      下面以實例來說明在JavaScript中簡單使用JSON:
      <script type="text/javascript">
      var user =[
      {
            "name":”shenmiweiyi”,
            "QQ":306451129,
            "email":”shenmiweiyi@163.com
            "address":
            [
                  {"City":"ZhengZhou","ZipCode":"450000"},
                  {"City":"BeiJing","ZipCode":"100000"}
            ]
      },
      {
            "name":”kehao”,
            "QQ":254892313,
            "email":”kehao@163.com
            "address":
            [
                  {"City":"ShangHai","ZipCode":"200000"},
                  {"City":"GuangZhou","ZipCode":"510000"}
            ]
       }
      ]
      alert(user[0].name+”的Email是:”user[0].email);  //outputs shenmiweiyi的Email是:shenmiweiyi@163.com
       alert(user[1].name+”住在:”user[1].address[0].city) //outputs kehao住在:ShangHai
</script>
      JSON已經是JavaScript標準的一部分。目前,主流的瀏覽器對JSON支持都非常完美,應用JSON,我們可以從XML的解析中擺脫出來,對那些應用Ajax的Web2.0網站來說,JSON確實是目前最靈活的輕量級方案。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JSON數(shù)據(jù)格式
json-rpc-java (一)
json數(shù)據(jù)在前端(javascript)和后端(php)轉換
json數(shù)組對象和對象數(shù)組
掌握 Ajax,第 10 部分: 使用 JSON 進行數(shù)據(jù)傳輸
JSON
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服