如何使用ajax讀取Json中的資料_AJAX相關

來源:互聯網
上載者:User

本文給大家分享一下,如何使用ajax讀取Json中的資料。

一、基礎知識

什麼是json?

JSON 指的是 JavaScript 物件標記法(JavaScript Object Notation)
JSON 是輕量級的文本資料交換格式
JSON 獨立於語言 *
JSON 具有自我描述性,更易理解
JSON 使用 JavaScript 文法來描述資料對象,但是 JSON 仍然獨立於語言和平台。JSON 解析器和 JSON 庫支援許多不同的程式設計語言。
JSON - 轉換為 JavaScript 對象

JSON 文字格式設定在文法上與建立 JavaScript 對象的代碼相同。

      由於這種相似性,無需解析器,JavaScript 程式能夠使用內建的 eval() 函數,用 JSON 資料來產生原生的 JavaScript 對象。

二、讀取Json中的資料

首先我編寫了一個Json的檔案,裡面有內容。注意格式。

 圖一  編寫json的檔案

然後,編寫html代碼,並引用ajax。

<!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><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>使用AJAX非同步讀取json</title><script src="ajax.js"></script><script>  window.onload=function()  {    /*獲得按鈕*/    var aBtn=document.getElementById('btn1');    //給按鈕添加點擊事件    aBtn.onclick=function()    {      //調用ajax函數      ajax('data.json',function(str){        //將JSON 資料來產生原生的 JavaScript 對象        var arr=eval(str);        alert(arr[0].b);    });    };  };</script></head><body>讀取json裡面的資料 <br /><input id="btn1" type="button" value="讀取json裡面的資料" /></body></html>

封裝的AJAX函數代碼如下:

/*AJAX封裝函數url:系統要讀取檔案的地址fnSucc:一個函數,檔案取過來,載入完會調用*/function ajax(url, fnSucc, fnFaild){  //1.建立Ajax對象  var oAjax=null;  if(window.XMLHttpRequest)  {    oAjax=new XMLHttpRequest();  }  else  {    oAjax=new ActiveXObject("Microsoft.XMLHTTP");  }  //2.串連伺服器  oAjax.open('GET', url, true);  //3.發送請求  oAjax.send();  //4.接收伺服器的返回  oAjax.onreadystatechange=function ()  {    if(oAjax.readyState==4) //完成    {      if(oAjax.status==200)  //成功      {        fnSucc(oAjax.responseText);      }      else      {        if(fnFaild)          fnFaild(oAjax.status);      }    }  };}

      接下來就是要讀取出檔案內容,在這之前,有一點要提的是,AJAX是從伺服器上讀取檔案,所以要把寫好的JSON檔案放到伺服器的路徑下,可能初學者接觸過的伺服器只有IIS,他的檔案路徑是C:\inetpub\wwwroot\aspnet_client\system_web,只要把Json放到這個路徑下,然後用localhost來訪問伺服器,就可以了。

  圖二  讀取效果圖

以上就是本文的全部內容,希望對大家的學習有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.