/* AJAX传递复杂数据结构如果按自己进行格式定义的话会经历组装,解析的过程,比较麻烦,其实AJAX中有一个数据的传输标准Json.
Json 将服务器端将复杂对象序列化为一个Json字符串,在浏览器端再用$.parseJson()反序列化为Javascript可以读取的对象。
C# 中将.NET对象序列化为Json字符串的方法:JavaScriptSerializer().Serialize(),AJAX得到的data是Json格式的数据,用$.parseJson()将Json格式的数据解析成javascript对象。
首先在客户端,JsonTest1.html 通过AJAX发出请求,然后服务端返回数据,数据存在data中,如下所示: */ <head> <title>无标题页</title> <script src="http://www.cnblogs.com/JQuery/js/jquery-1.4.2.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ $.post("JsonTest1.ashx",function(data,status){ // 反序列化一个对象 // var person = $.parseJSON(data); // alert(person.Name); // alert(data); // 反序列化一个数组 var str = $.parseJSON(data); alert(str[1]); }) }) </script> </head> //下面是服务端 JsonTest1.ashx 的代码,服务端将复杂数据类型(对象,数组)发回给客户端 public class JsonTest1 : IHttpHandler {
public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; JavaScriptSerializer jss = new JavaScriptSerializer(); //传一个对象过去 //String json = jss.Serialize(new Person() { Name="yaoguipeng",Age=30}); //context.Response.Write(json); //传一个数组过去 string[] str = { "yaoguipeng","guipengyao","yaopeng"}; string json = jss.Serialize(str); context.Response.Write(json); }
public bool IsReusable { get { return false; } }
public class Person { public string Name{get;set;} public int Age{get;set;} } } |
2 不登高山,怎知天高;不临深溪,焉知地厚!站在坚实的土地上,做着生命中最真实的事情;像一棵挺拔的大树,认可自己的命运并敢于迎接属于这一方天空的风风雨雨。