JSON、JSONP、XML的區別

來源:互聯網
上載者:User

標籤:set   調用   jquer   java   doctype   標準   取資料   括弧   資料   

這兩天看jquery手冊的時候看到了jsonp。發現手冊把jsonp與json放在一起講解了,所以想寫篇文章 梳理一下這三者的關係。

jsonp:

jsonp是json的一種“使用模式”,可以讓網頁從別的網域名稱(網站)擷取資料,即跨域讀取資料。

因為同源策略所以當我們從不同的域訪問資料時需要使用jsonp。同源策略是瀏覽器的安全功能。

jsonp的核心則是動態添加<script>標籤來調用伺服器的js指令碼。

看jsonp.html頁面的代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title></title>    <script type="text/javascript">    // 得到航班資訊查詢結果後的回呼函數    var flightHandler = function(data){        alert(‘你查詢的航班結果是:票價 ‘ + data.price + ‘ 元,‘ + ‘餘票 ‘ + data.tickets + ‘ 張。‘);    };    // 提供jsonp服務的url地址(不管是什麼類型的地址,最終產生的傳回值都是一段javascript代碼)    var url = "http://flightQuery.com/jsonp/flightResult.aspx?code=CA1998&callback=flightHandler";    // 建立script標籤,設定其屬性    var script = document.createElement(‘script‘);    script.setAttribute(‘src‘, url);    // 把script標籤加入head,此時調用開始    document.getElementsByTagName(‘head‘)[0].appendChild(script);    </script></head><body> </body></html>
json:

json 是javascript對象標記法

json是輕量級的資料交換格式

json是獨立於語音的

json具有自我描述性,更容易理解

json文字格式設定在文法上於建立JavaScript對象的代碼是相同的,無需解釋,JavaScript程式能夠使用內建的eval()函數,用json資料產生原生的JavaScript對象。

json文法是JavaScript的對象標記法文法的子集

文法規則:

  • 資料在成對的名稱和數值中
  • 資料由逗號分隔
  • 大括弧儲存對象
  • 中括弧儲存數組
{"sites": [{ "name":"菜鳥教程" , "url":"www.runoob.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"微博" , "url":"www.weibo.com" }]}

 

XML:

XML是可延伸標記語言 (XML)。是一門語言。XML被設計用來傳輸和儲存資料。

  • XML 指可延伸標記語言 (XML)(EXtensible Markup Language)。
  • XML 是一種很像HTML的標記語言。
  • XML 的設計宗旨是傳輸資料,而不是顯示資料。
  • XML 標籤沒有被預定義。您需要自行定義標籤。
  • XML 被設計為具有自我描述性。
  • XML 是 W3C 的推薦標準。
<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don‘t forget me this weekend!</body></note>
JSON與XML相同之處:
  • JSON 是純文字
  • JSON 具有"自我描述性"(人類可讀)
  • JSON 具有層級結構(值中存在值)
  • JSON 可通過 JavaScript 進行解析
  • JSON 資料可使用 AJAX 進行傳輸
與 XML 不同之處
  • 沒有結束標籤
  • 更短
  • 讀寫的速度更快
  • 能夠使用內建的 JavaScript eval() 方法進行解析
  • 使用數組
  • 不使用保留字
為什麼使用 JSON?

對於 AJAX 應用程式來說,JSON 比 XML 更快更易使用:

使用 XML
  • 讀取 XML 文檔
  • 使用 XML DOM 來迴圈遍曆文檔
  • 讀取值並儲存在變數中
使用 JSON
  • 讀取 JSON 字串
  • 用 eval() 處理 JSON 字串

 

JSON、JSONP、XML的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.