导读:我们在使用ajax技术从后台获取数据时往往需要使用Json进行数据的传递,所以会涉及到对象的序列化和反序列化的问题,在ASP.NET中的我们一般使...
- 我们在使用ajax技术从后台获取数据时往往需要使用Json进行数据的传递,所以会涉及到对象的序列化和反序列化的问题,在ASP.NET中的我们一般使用JavaScriptSerializer实现对象的序列化和反序列化操作,该类在System.Web.Script.Serializatioin命名空间下,需引用System.Web.Extensions.dll.
实例:
HTML 预览
- class People
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public DateTime Age { get; set; }
- }
序列化:
HTML 预览
- List<People> list = new List<People>();
- People peo = new People();
- peo.Id = 1;
- peo.Name = "zhangsan";
- peo.Age = DateTime.Now;
- list.Add(peo);
-
- People peo2 = new People();
- peo2.Id = 2;
- peo2.Name = "lisi";
- peo2.Age = DateTime.Now;
- list.Add(peo2);
- JavaScriptSerializer ser = new JavaScriptSerializer();
- TextBox1.Text = ser.Serialize(list);
显示结果:
HTML 预览
- [
-
- {"Id":1,"Name":"zhangsan","Age":"\/Date(1363336335448)\/"},
-
- {"Id":2,"Name":"lisi","Age":"\/Date(1363336335448)\/"}
-
- ]
反序列化:
HTML 预览
- string json = TextBox1.Text;
- JavaScriptSerializer ser=new JavaScriptSerializer();
- List<People> list = ser.Deserialize<List<People>>(json);
- foreach (People peo in list)
- {
- Response.Write(peo.Name + "<br>" + peo.Id + "<br>" + peo.Age);
- Response.Write("<hr>");
- }
前台脚本解析:
HTML 预览
- $(":submit:eq(2)").click(function () {
-
- $.getJSON("../logic/October.ashx", { code: "one" }, function (data) {
- $.each(data, function (key, val) {
- $("p").append(key + "--->>" + val + "<br>");
- $.each(val, function (k, v) {
- $("h5").append(k+"---->>"+v+"<hr>");
- });
-
- });
- });
- return false;
- });