AJAX傳遞復雜數據如果自己進行格式定義的話會經歷組裝、解析的過程,因此AJAX中有一個事實上
的數據傳輸標准JSon。
Json將復雜對象序列化為一個字符串,在瀏覽器端再將字符串反序列化為JavaScript可以讀取的對象。
看一下Json的格式。Json被幾乎所有語言支持。
C#中將.Net對象序列化為Json字符串的方法:
JavaScriptSerializer().Serialize(p),JavaScriptSerializer在System.Web.Extensions.dll中,
是.Net3.x 中新增的類,如果在 .Net2.0中則需要用第三方的組件。
JQuery AJAX得到的data是Json格式數據,用 $.parseJSON(data)方法將JSon格式數據解析為JavaScript對象
可以在post函數 后一個函數傳遞"json"則data就是反序列化以后的對象,免去了parseJSON
案例:用Json將類返回給客戶端,使用JQurey
1.處理頁設置 Json1.ashx
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; JavaScriptSerializer jss = new JavaScriptSerializer(); //創建 JavaScriptSerializer string json = jss.Serialize(new person(){Name="xgao",Age=18 }); context.Response.Write(json); } public class person { public string Name { get; set; } public int Age { get; set; } }
2.JAVAscript設置
<script type="text/javascript"> $(function() { $.post("Json1.ashx", function(data, state) { if (state == "success") { var person = $.parseJSON(data); //利用parseJSON進行轉換 alert(person.Name); alert(person.Age); } }); }); </script>