AJAX請求 $.getJson方法的使用


使用jQuery的$.getJson方法可以異步的獲取服務器端返回的json字符串。

$.getJson方法語法

$.getJson(url,parameters,callback)

參數

 

url

(字符串)將要通過GET方法進行交互的服務器端資源的url。

parameters

(對象)一個對象,其屬性作為“鍵/值”用於構造查詢字符串並追加到url;或者一個預格式化和uri編碼的查詢字符串。

callback

(函數)回調函數,在請求完成時被調用。把響應體解析為json字符串,這個字符串的值作為第一個參數傳遞到這個回調函數,響應狀態作為第二個參數傳遞到該函數。

返回值

XHR實例

下面看個例子

客戶端代碼:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function () {
  $('#clk').click(function () {
    var num = $(this).val();
    $.getJSON('Server.aspx', callback)
  })
  function callback(json, status) {
    $.each(json, function (i) {
      $('#show').append('name:' + json[i]['Name'] + 'age:' + json[i]['Age'] + '<br/>');
    })
  }
})
</script>
</head>
<body>
<input id="clk" type="button" value="button" />
<div id="show">
</div>
</body>
</html>

服務端主要代碼:

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Script.Serialization;//適用於.NetFramework 3.5

public partial class Server : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    if (!Page.IsPostBack)
    {
      //List<Person> per = new List<Person>();
      //per.Add(new Person("張三", 18));
      //per.Add(new Person("李四", 19));
      //JavaScriptSerializer jsonHelper = new JavaScriptSerializer();
      //string json = jsonHelper.Serialize(per);
      //Response.Write(json);
      Response.Write(GetJSONData());
    }
  }
  protected string GetJSONData()
  {
    string str = string.Empty;
    //特別要注意json的返回格式,如果格式不正確將不能正常調用客戶端的回調函數
    str = "[{\"Name\":\"張三\",\"Age\":\"14\"}," +
    "{\"Name\":\"李四\",\"Age\":\"17\"}," +
    "{\"Name\":\"王五\",\"Age\":\"19\"}]";
    return str;
  }

  public class Person
  {
    private string name;
    private int age;
    public string Name
    {
      get { return name; }
      set { name = value; }
    }
    public int Age
    {
      get { return age; }
      set { age = value; }
    }

    public Person(string name, int age)
    {
      this.name = name;
      this.age = age;
    }
  }
}

運行程序,結果如圖:

clip_image002

如果你不熟悉json格式,也不要緊。可以使用System.Web.Script.Serialization(framework 3.5)命名空間下為格式化為json的幫助類。我們可以把服務器端Page_Load事件中注釋的代碼變為可用。把Response.Write(GetJSONData())這句注釋掉。再運行程序,結果沒有問題,如下圖。它把類直接格式化為json字符串,省去了很多時間。

clip_image004

Demo下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM