天天看點

Jquery getJSON方法分析(二)

getJSON與aspx

準備工作

·Customer類

public class Customer

{

    public int Unid { get; set; }

    public string CustomerName { get; set; }

    public string Memo { get; set; }

    public string Other { get; set; }

}

(一)ashx

Customer customer = new Customer 

       { Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};

string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);

context.Response.Write(strJson);

function GetCustomer_Ashx() {

    $.getJSON(

    "webdata/Json_1.ashx",

    function(data) {

        var tt = "";

        $.each(data, function(k, v) {

            tt += k + ":" + v + "<br/>";

        })

        $("#divmessage").html(tt);

    });

·通過getJSON向ashx請求資料。傳回的資料為JSON對象。

(二)ashx檔案,但傳回的是實體集合

    { Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};

Customer customer2 = new Customer 

    { Unid = 2, CustomerName = "吳用", Memo = "天機星", Other = "智多星" };        

List<Customer> _list = new List<Customer>();

_list.Add(customer);

_list.Add(customer2);        

string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(_list);

function GetCustomerList() {

            $.each(v,function(kk, vv) {

                tt += kk + ":" + vv + "<br/>";

            });

        });

(三)請求aspx檔案

·cs檔案

protected void Page_Load(object sender, EventArgs e)

   Customer customer = new Customer 

     { Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };

  string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);

  Response.Write(strJson);

·Aspx檔案

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Json_1.aspx.cs" 

  Inherits="webdata_Json_1" %>

前台檔案隻保留Page聲明,其它全部删除。

·js檔案

function GetCustomer_Aspx() {

    "webdata/Json_1.aspx",

               var tt = "";

               $.each(data, function(k, v) {

                    tt += k + ":" + v + "<br/>";

                })

                $("#divmessage").html(tt);

這個部分與請求ashx檔案時相同。

請求實體集合時,與ashx時相同,這裡不做重複。

(四)請求文本檔案

文本檔案提供json字元串,由$.getJSON得到json對象。

·文本檔案

{Unid:1,CustomerName:"宋江",Memo:"天魁星",Other:"黑三郎"}

文本檔案提供json串,對于json的組成格式,請參見其它文檔。對于這一實體json,會被忽略空行與空格。

function GetCustomer_txt() {

    "webdata/Json_1.txt",

解析的方法與其它的相同。

對于多行的如下:

文本:

[

{Unid:1,CustomerName:"宋江",Memo:"天魁星",Other:"黑三郎"},

{Unid:2,CustomerName:"吳用",Memo:"天機星",Other:"智多星"}

]

解析:

function GetCustomer_TxtList() {

            $.each(v, function(kk, vv) {

與其它的相同。

(五)帶參數ajax請求

以ashx為例子,按客戶id來請求客戶。

·Ashx檔案

if(context.Request["iUnid"]==null)

   return;

context.Response.ContentType = "text/plain"; 

{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };

{ Unid = 2, CustomerName = "吳用", Memo = "天機星", Other = "智多星" }; 

_list.Add(customer2);

int iCustomerId =Convert.ToInt32(context.Request["iUnid"]);

var cus = from q in _list

  where q.Unid == iCustomerId

  select q;

string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(cus);

·ajax請求

function GetCustomer_AshxWithPara() {

    "webdata/Json_2.ashx",

    { iUnid: 1 },

其中參數也是以k/v對格式發出。請求傳回的可以看到:在服務端以Customer清單集合傳回。

 在jquery庫中,getJSON其實是調用的:Query.get(url, data, callback, "json")

這點很重要。

部落格園大道至簡

<a href="http://www.cnblogs.com/jams742003/" target="_blank">http://www.cnblogs.com/jams742003/</a>

轉載請注明:部落格園

繼續閱讀