Json
AJAX传递复杂数据如果自己进行格式定义的话会经历组装、解析的过程,因此AJAX中有一个事实上的数据传输标准JSon。Json将复杂对象序列化为一个字符串,在浏览器端再将字符串反序列化为JavaScript可以读取的对象。看一下Json的格式。Json被几乎所有语言支持。
![](https://images2015.cnblogs.com/blog/567993/201603/567993-20160316215235818-386284651.png)
![](https://images2015.cnblogs.com/blog/567993/201603/567993-20160316215237334-1708418744.gif)
在C#中,将一段信息,根据Javascript的格式进行序列化,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <%@ WebHandler Language= "C#" Class= "JSonTest1" %> using System; using System.Web; using System.Web.Script .Serialization; 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 = "tom" , Age = 30 }); //序列化以后就是一个key+value的形式 context .Response.Write(json ); } public bool IsReusable { get { return false ; } } } public class Person { public string Name { get ; set ; } public int Age { get ; set ; } } |
![](https://images2015.cnblogs.com/blog/567993/201603/567993-20160316215235818-386284651.png)
JQuery AJAX得到的data是Json格式数据,用$.parseJSON(data)方法将JSon格式数据解析为JavaScript对象
1 2 3 4 5 6 7 8 9 10 11 12 | <script type= "text/javascript" > $ ( function () { $ .post( "JSonTest1.ashx" , function (data, status) { if ( status != "success" ) alert ( "请求错误" ); else { var person = $. parseJSON(data ); //这里就将发来的{"Name":"tom","Age":30}序列化成为了数组 alert (person. Name); alert (person. Age); } }); }); </script > |
![](https://images2015.cnblogs.com/blog/567993/201603/567993-20160316215237334-1708418744.gif)