AJAX之Json序列化


/*
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;}
     }    
 }

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM