关于ASP.NET下,JQuery+AJAX使用JSON返回对象集合List数据的总结
昨天第一次开始使用JQuery框架,并用其AJAX方法练习了一个最简单的例子。下班前想使用一下JSON来传输数据。在网上查找资料后,整理如下:
ASP.NET 3.5已支持JSON了,在其扩展中System.Web.Extensions.dll。
using System.Web.Script.Serialization;首先引用该命名空间!该命名空间内的Serialize()方法可以实现将数据对象序列化为JSON格式。
举例,如果我现在有个实体类Object 或数组 arrayinfo 需要序列化为JSON格式,那么只需要调用Serialize()方法即可。伪代码如下:
using System.Web.Script.Serialization; JavaScriptSerializer serializer = new JavaScriptSerializer(); string jsonStr = serializer.Serialize(Object);
jsonStr内的就是已经序列化好了的数据。直接返回就可以了。JQuery接到返回的数据后可以直接以msg[0].name来访问里面的属性值。
现将部分代码贴出:
AJAX请求页面 tagmanagement.aspx
<script type="text/javascript" language="javascript"> $(document).ready(function() { $("#btn_search").click(function() { $.ajax({ url: "processpage.aspx", type: "GET", dataType: "json", data: "txt_search=" + escape($("#txt_search").val()), success: function(data) { alert(data[0].tag_name+"---"+data[0].count); }, error: function() { alert("O No~~~"); } }); }); }); </script>
Ajax响应处理页面 processpage.aspx.cs
using System.Web.Script.Serialization; using ModelGroup.Model; public partial class Admin_ProcessPage : System.Web.UI.Page { JavaScriptSerializer serializer = new JavaScriptSerializer(); protected void Page_Load(object sender, EventArgs e) { string name = Request.QueryString["txt_search"].ToString(); if (name.Equals("aaa")) { List zentag = new List(); zentag.Add(new zen_tag { tag_id = 1, tag_name = "Nicholas", url_show = "Nicholas", first_letter = "N", count = 500, create_time = "2009-10-10 10:10" }); string jsonStr = serializer.Serialize(zentag); Response.Clear(); Response.Write(jsonStr); Response.End(); } } }