在Ajax中,客户端只能获得从请求地址返回的字符串,这对于想返回对象或对象集合来说很痛苦,需要在服务器端拼接字符串,在客户端解析字符串。Json则简单的解决了这个问题,它可以将对象序列化为字符串,再反序列化为对象。下面是个小例子。
共需要三个文件:实体类,处理页,客户端网页
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
User tom = new User() { Name = "Tom", Age = 22 };
User lily = new User() { Name = "Lily", Age = 19 };
List<User> users = new List<User>();
users.Add(tom);
users.Add(lily);
//Json 将object 对象 变string
JavaScriptSerializer jss = new JavaScriptSerializer();
context.Response.Write(jss.Serialize(users));
}
//发ajax请求
$.post("Handler1.ashx", function (data, status) {
//将获得的数据反序列化 获得对象 然后可以直接使用属性获取值
var users = $.parseJSON(data);
for (var i = 0; i < users.length; i++) {
alert(users[i].Name + "\t" + users[i].Age);
}
});