今天犯了一错误,贴下给需要的兄弟们!

因为项目需要AJAX去调用WCF,但由于需要传递的值非常多,我就想做成JSON形式进行传递。

代码如下:

    var datas = [];
        var option = new Array();

        option["FCustomerCode"]="@{@Session["FCustomerCode"].ToString()}";

        if ($("#StartFBillDate").val() != "") {
            option["StartFBillDate"] = $("#StartFBillDate").val();  
        }
        if ($("#EndFBillDate").val() != "") {
            option["EndFBillDate"] = $("#EndFBillDate").val();    
 
        }
          datas.push(option); 

传递如下:

            data:'{"data":"'+datas+'","r":"'+ Math.random() * 10+'"}' ,
            contentType: "application/json;charset=utf-8",

发现怎么搞都无法传递给后台,我一直把datas 给当成了数组,一直想格式化为JSON。其实错了。上面的Datas已经是JSON了。
在群里朋友们的帮助下,终于解决了。感谢他们。

解决办法:

1. jquery.JSON.stringfy 利用插件

2.利用方法

function JsonToString(o) {    
    var arr = []; 
    var fmt = function(s) { 
        if (typeof s == 'object' && s != null) return JsonToStr(s); 
        return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s; 
    } 
    for (var i in o) 
         arr.push("'" + i + "':" + fmt(o[i])); 
    return '{' + arr.join(',') + '}'; 
}

3.利用服务器JavaScriptSerializer

关键字: Json to string

原文地址:https://www.cnblogs.com/flyfish2012/p/2961886.html