Josn 将复杂对象序列化为一个字符串,在浏览器端再将字符串反序列化为Javascript可以读取的对象。
C#.net中将.NET对象序列化为Json字符串的方法:JavaScriptSerializer().Serialize(p),JavaScriptSerializer在System.Web.Extensions.dll中。
JQuery AJAX得到的data是Json数据,用$.parseJSON(data)方法将Json格式数据解析为Javascript对象。
public class OrderView
{
public Guid Id { set; get; }
public String Number { set; get; }
public Guid CustomerId { set; get; }
public Guid ProductId { set; get; }
}
List<OrderView> listdata = 获取集合对象;
string jsondata = new JavaScriptSerializer().Serialize(listdata);//将集合对象转成Json格式存放在字符串数组中[{},{},{}]
context.Response.Write(jsondata);//一般处理程序的文本响应
$.get("一般处理程序路径", { "参数名": 值 }, function (data, status) {
if (status == "success") {
var json = $.parseJSON(data);
for (var i = 0; i < json.length; i++) {
$("#gv").append('<tr align="center"><td>' + json[i].Number + '</td><td>' + json[i].CustomerId + '</td><td>' + json[i].ProductId + '</td></tr>');
}
}
})
反序列化就是一个逆向过程:
先声明了一个用户实体类UserInfo类,后面解析的时候用到。
string jsonArray="{ "Number": 1, "CustomerId": null, "ProductId": 0, ........... } "
JavaScriptSerializer ser = new JavaScriptSerializer();
UserInfo foo = ser.Deserialize<UserInfo>(jsonArray);
sting number=foo.Number;