C# 中handler处理程序如何获取json数组?

functioncreateJson(tableid){varj=0;vardata=[];//当商品价格varNum=0;//当前商品的IdvarId=0;vartab... function createJson(tableid) {
var j = 0;
var data = [];
//当商品价格
var Num = 0;
//当前商品的Id
var Id = 0;
var tableObj = tableid;
debugger;
for (var i = 1; i < tableObj.rows.length; i++) {
if (tableObj.rows[i].cells[0].childNodes[0].checked == true) {
Num = parseInt(tableObj.rows[i].cells[4].childNodes[0].value);
Id = tableObj.rows[i].cells[5].innerText;
var row = {};
row.GId = Id;
row.GNum = Num;
data[j] = row;
j += 1;
}
}
var JsonStr = JSON.stringify(data);
$.post("../ShopCardAdd.ashx", data, function (YesOrNo) { alert(YesOrNo); });
}
展开
 我来答
du瓶邪
推荐于2016-10-07 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2912万
展开全部

json是服务端将复杂的对象序列化成为一个字符串,在浏览器端再将字符串反序列化为js可以读取的对象。
在C#中通过通过JavaScriptSerializer类就可以得到json对象,可以通过以下代码去理解:
如下服务端ashx页:

    public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            JavaScriptSerializer jss = new JavaScriptSerializer();            
            //string json = jss.Serialize(new Person(){Name="tom",Age=30});//json 序列化对象
            //string json = jss.Serialize(new string[] {"张静初","曲栅栅" });//json 序列化数组
            Person[] ps = new Person[] { new Person() { Name = "张静初", Age = 30 }, new Person() { Name = "曲栅栅", Age = 30 } };
            string json = jss.Serialize(ps);//json 序列化对象数组
            context.Response.Write(json);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
hyjiacan
推荐于2017-12-16 · TA获得超过3912个赞
知道小有建树答主
回答量:894
采纳率:100%
帮助的人:1084万
展开全部

额。。  传参数,请以键值对的方式传。如:

$.post("../ShopCardAdd.ashx", {data: data}, function (YesOrNo) { alert(YesOrNo); });

在处理程序中,通过上下文得到Request对象,再取出数组(直接取出的是字符串):

string data = context.Request["data"];

然后再用Newtonsoft类的包把字符串转换成对象数组:

var list = JsonConvert.DeserializeObject(data); // 弱类型
//或
var list1 = JsonConvert.DeserializeObject(json, type); // 强类型
追问
能不能写清楚一点啊? JsonConvert.DeserializeObject这个地方报错,不存这个名JsonConvert
追答
不好意思哈。JsonConvert 是newtonsoft里面的,你去找一个 Newtonsoft.Json.dll  这个库,然后下载你用的版本加上就可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式