在ASP.NET中的页面加载事件上调用JSON对象

时间:2014-03-25 06:14:36

标签: c# jquery asp.net json webforms

如何在ASP.Net中的页面加载事件上调用json对象。我创建了一个json对象

jsonObject = {"rooms": [{
                    "adult": adult.val(), "child": child.val()
                }]}

在客户端的页面上,然后我将此对象传递给另一个页面,如下所示:

var w = window.open("Default.aspx");
w.myVariable = jsonObject;

我可以通过

在客户端的Default.aspx页面中获取JsonObject
 var jsonObject = window.opener.jsonObject.rooms

但我想在服务器上的Default.aspx页面的页面加载事件上调用此Object。像这样:

protected void Page_Load(object sender, EventArgs e)
{
//var jsonobject = jsonObject;
}

请有人解释我如何实现这一目标。感谢名单

1 个答案:

答案 0 :(得分:0)

以下是使用.Net System.Web.Script.Serialization类执行此操作的快速示例。

简单的购物车示例。 JSON字符串被反序列化并添加到ShoppingCart对象。现在使用通用列表(newItem),您可以以任何方式使用强类型JSON值。

protected void Page_Load(object sender, EventArgs e)
{
    using (StreamReader reader = new StreamReader(Request.InputStream))
    {
        json = reader.ReadToEnd();
    }

    var jsonObj = new JavaScriptSerializer().Deserialize<ShoppingCart>(json);

    List<ShoppingCart> newItem = new List<ShoppingCart>();
    newItem.Add(new ShoppingCart(jsonObj.ProductId,
                                 jsonObj.ProductTitle,
                                 jsonObj.DefaultImagePath,
                                 jsonObj.Quantity,
                                 jsonObj.Price,
                                 jsonObj.Total);

}