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