>

复制代码 代码如下,json数据请求成功后的处理函

- 编辑:澳门博发娱乐官网 -

复制代码 代码如下,json数据请求成功后的处理函

准备工作·Customer类复制代码 代码如下:public class Customer{ public int Unid { get; set; } public string CustomerName { get; set; } public string Memo { get; set; } public string Other { get; set; }}·服务端处理复制代码 代码如下:Customer customer = new Customer { Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};string strJson = Newtonsoft.Json.JsonConvert.SerializeObject;

准备工作
·Customer类

添加引用Dll文件就可以使用了,很方便的。 /201101/tools/Newtonsoft.Json.Net20.rar
在jquery库中,getJSON其实是调用的:Query.get(url, data, callback, "json")
其中参数也是以k/v对格式发出。请求返回的可以看到:在服务端以Customer列表集合返回
现在来看一下事列:
件一个Common类

context.Response.WriteJquery. getJSON

复制代码 代码如下:

复制代码 代码如下:

方法定义:jQuery.getJSON( url, data, callback )

public class Customer
{
public int Unid { get; set; }
public string CustomerName { get; set; }
public string Memo { get; set; }
public string Other { get; set; }
}

public class Customer
{
public int Unid { get; set; }
public string CustomerName { get; set; }
public string Memo { get; set; }
public string Other { get; set; }
}

通过get请求得到json数据·url用于提供json数据的地址页·data用于传送到服务器的键值对·callback回调函数,json数据请求成功后的处理函数复制代码 代码如下:function { // data是一个json对象 // textStatus will be "success" this; // the options for this ajax request}一个对象复制代码 代码如下:$.getJSON( "webdata/Json_1.ashx", function { $.text; });向Json_1.ashx地址请求json数据,接收到数据后,在function中处理data数据。 这里的data的数据是一条记录,对应于一个customer实例,其中的数据以k/v形式存在。即以[object,object]数组形式存在。{"Unid":1,"CustomerName":"宋江","Memo":"天魁星","Other":"黑三郎"}

(一)ashx

在一般处理文件(ashx)中写一个如下方法

所以在访问时,以data.Property来访问,下面以k/v循环来打印这条宋江的记录:复制代码 代码如下:$.getJSON( "webdata/Json_1.ashx", function { var tt=""; $.each { tt += k + ":" + v + "
"; }) $.html;结果:Unid:1CustomerName:宋江Memo:天魁星Other:黑三郎

复制代码 代码如下:

复制代码 代码如下:

对象数组Ashx文件修改:复制代码 代码如下:List _list = new List(); Customer customer = new Customer { Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};Customer customer2 = new Customer { Unid = 2, CustomerName = "吴用", Memo = "天机星", Other = "智多星" };

Customer customer = new Customer
{ Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);
context.Response.Write(strJson);

Customer customer = new Customer
{ Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);
context.Response.Write(strJson);

_list.Add;_list.Add;string strJson = Newtonsoft.Json.JsonConvert.SerializeObject; 它生成的json对象的字符串是:

复制代码 代码如下:

在前台Jquery中加载调用ashx代码
通过getJSON向ashx请求数据。返回的数据为JSON对象

[{"Unid":1,"CustomerName":"宋江","Memo":"天魁星","Other":"黑三郎"},{"Unid":2,"CustomerName":"吴用","Memo":"天机星","Other":"智多星"}]

function GetCustomer_Ashx() {
$.getJSON(
"webdata/Json_1.ashx",
function(data) {
var tt = "";
$.each(data, function(k, v) {
tt += k + ":" + v + "<br/>";
})
$("#divmessage").html(tt);
});
}

复制代码 代码如下:

这里可以看到做为集合的json对象不是再一条记录,而是2条记录,是一个[[object,object]]数组:[object,object][object,object],而每个[object,object]表示一条记录,对应一个Customer,其实也是k/v的形式,而这个v就是一个Customer对象,而这个k是从0开始的索引。复制代码 代码如下:$.getJSON( "webdata/Json_1.ashx", function { $.each { alert;这时,k值为0,1……

·通过getJSON向ashx请求数据。返回的数据为JSON对象。
(二)ashx文件,但返回的是实体集合

$().ready(function() {
$.getJSON("JqueryData2.ashx", function(data) {
alert(data.Memo);
});
$.getJSON("JqueryData2.ashx", function(data) {
var tt = "";
$.each(data, function(k, v) {
tt += k + ":" + v + "<br/>";
})
$("#disHows").html(tt);
});
});

列表json对象的方法:复制代码 代码如下:$.getJSON( "webdata/Json_1.ashx", function { var tt = ""; $.each { $.each { tt += kk + ":" + vv + "
"; }); }); $.html;结果:Unid:1CustomerName:宋江Memo:天魁星Other:黑三郎Unid:2CustomerName:吴用Memo:天机星Other:智多星

复制代码 代码如下:

(二)ashx文件,但返回的是实体集合

这里用了嵌套循环,第一个循环用于从List中遍历Customer对象,第二个循环用于从Customer对象中遍历Customer对象的属性,也就是k/v对。

Customer customer = new Customer
{ 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);
context.Response.Write(strJson);

复制代码 代码如下:

复制代码 代码如下:

Customer customer = new Customer
{ 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);
context.Response.Write(strJson);

function GetCustomerList() {
$.getJSON(
"JqueryData2.ashx",
function(data) {
var tt = "";
$.each(data, function(k, v) {
$.each(v,function(kk, vv) {
tt += kk + ":" + vv + "<br/>";
});
});
$("#divmessage").html(tt);
});
}
[code]
(三)请求aspx文件中的CS
[code]
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);
}

function GetCustomerList() {
$.getJSON(
"webdata/Json_1.ashx",
function(data) {
var tt = "";
$.each(data, function(k, v) {
$.each(v,function(kk, vv) {
tt += kk + ":" + vv + "<br/>";
});
});
$("#divmessage").html(tt);
});
}

·Aspx文件
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Json_1.aspx.cs"
Inherits="webdata_Json_1" %>
主意:前台文件只保留Page声明,其它全部删除
Jquery代码

 (三)请求aspx文件
·cs文件

复制代码 代码如下:

本文由胜博发-运维发布,转载请注明来源:复制代码 代码如下,json数据请求成功后的处理函