mvc3 jquery post 复杂json

来源:互联网 发布:淘宝店铺降权有通知吗 编辑:程序博客网 时间:2024/05/21 11:30

先吐槽微软做的东西,都是看起来简单方便,实际完全不能用


比如我用jquery post一个json数据到后台,后台一个类接收

var data = {a:1,b:2,c:3}

 $.ajax({
            url: "control",
            type: "POST",
            data: data
            dataType: "json",
            success: function (data) {
                alert(data);
            }
        });

后台

control(data a)

{

//这里就可以接收传过来的a了

}

你以为屌炸天了,可是如果是这样

data = [{a:1,b:2},{a:3,b:4}]

或者是

data = {a:1,b:[{c:3},{c:4}]}

后台就完全接收不到啦,微软这货只能实现简单的一级json数据


对于复杂json只有一种相对方便的方法,就是

 $.ajax({
            url: "AddInquiryFollow",
            type: "POST",
            data: JSON.stringify(data),//用一个专有方法把json变成字符串
            dataType: "json",//完全可以不用,但如果用了json,如果服务端返回的数据不是json,则会报错
            success: function (data) {
                alert(data);
            }
        });

后台

 string s = Request.Form.ToString();
            JavaScriptSerializer jss = new JavaScriptSerializer();
            IList<ReserveVoDto> sth = jss.Deserialize<IList<ReserveVoDto>>(HttpUtility.UrlDecode(s)); //用JavaScriptSerializer类把字符串转成任意类型


0 0
原创粉丝点击