Json序列化与反序列化

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;

你可能感兴趣的:(json,反序列化,序列化)