Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “消息”:“传入的对象无效(JSON数据格式问题)_Javascript_Json_Webmethod - Fatal编程技术网

Javascript “消息”:“传入的对象无效(JSON数据格式问题)

Javascript “消息”:“传入的对象无效(JSON数据格式问题),javascript,json,webmethod,Javascript,Json,Webmethod,我正试图将json发送到我的webmethod,但下面显示了错误 {"Message":"Invalid object passed in, \u0027:\u0027 or \u0027}\u0027 expected. (17): { \"mappingData :\"\"[\"Ref No,0\",\"Date,0\",\"Amt,0\",\"Sender Name,0\",\"Sender Add,0\",\"Beneficiary Name,0\",\"Beneficiary Add

我正试图将json发送到我的webmethod,但下面显示了错误

{"Message":"Invalid object passed in, \u0027:\u0027 or \u0027}\u0027 expected. (17): { \"mappingData
:\"\"[\"Ref No,0\",\"Date,0\",\"Amt,0\",\"Sender Name,0\",\"Sender Add,0\",\"Beneficiary Name,0\",\"Beneficiary
 Add,0\",\"Phone,0\",\"Secret Code,0\",\"Secret Ans,0\",\"Preferred Id,0\"]\"}","StackTrace":"   at System
.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)\r\n   at System
.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n   at System
.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit
, JavaScriptSerializer serializer)\r\n   at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize
(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)\r\n   at System.Web.Script
.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n   at System.Web.Script.Services
.RestHandler.GetRawParamsFromPostRequest(HttpContext context, JavaScriptSerializer serializer)\r\n  
 at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext
 context)\r\n   at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context,
 WebServiceMethodData methodData)","ExceptionType":"System.ArgumentException"}
我的Javascript代码是:

    function tableToJson() { 
        var myArray = [];
        $('.dataRow').each(function(){
            var data= $(this);
            var ColumnAlias= data.find('div.ColumnAlias p').html();
            var TableNames=data.find('div.ddlTableNames select').val();
            var mainData=ColumnAlias+','+TableNames;
            myArray.push(mainData);

        });
        var json_text = JSON.stringify(myArray);
        if (json_text!=null) {
            $.ajax({
                type: "POST",
                url: "CorrespondentTemplate.aspx/SaveMappings",
                data: '{ "mappingData:""'+json_text+'"}',
                contentType: "application/json",
                success: function (data) {
                    alert(data.d);
                }
            });
        }

        return false;
    }
请检查这条线路,我不知道它出了什么问题

data: '{ "mappingData:""'+json_text+'"}',

引号放错地方了。应该是

data: '{ "mappingData":"'+json_text+'"}',
或者你可以这样做

data: JSON.stringify({ mappingData: myArray }),

我试图用下面的方法来解决上述问题

    function tableToJson() { 
        var myArray = [];
        $('.dataRow').each(function(){
            var data= $(this);
            var ColumnAlias= data.find('div.ColumnAlias p').html();
            var TableNames=data.find('div.ddlTableNames select').val();
            var mainData=ColumnAlias+','+TableNames;
            myArray.push(mainData);

        });
        var json_text = JSON.stringify(myArray);
        var jsonFormat={mappingData:json_text};
        var jsonFormatInString=JSON.stringify(jsonFormat);
        if (json_text!=null) {
            $.ajax({
                type: "POST",
                url: "CorrespondentTemplate.aspx/SaveMappings",
                data: jsonFormatInString,
                contentType: "application/json",
                success: function (data) {
                    alert(data.d);
                }
            });
        }

        return false;
    }
这三条线帮我完成了任务

        var json_text = JSON.stringify(myArray);
        var jsonFormat={mappingData:json_text};
        var jsonFormatInString=JSON.stringify(jsonFormat);

仍然存在错误:{Message:传入的对象无效,\u0027:\u0027或\u0027}\u0027应为。17:{\mappingData:\[\Ref No,0\,\Date,0\,\Amt,0\,\Sender Name,0\,\Sender Add,0\,\consibilizer Name,0\,\Phone,0\,\Secret Code,0\,\Secret Ans,0\,\Preferred Id,0\]},StackTrace:atSystem@Gaurav123我更新了。像JSON一样发送,为什么是引号?我尝试了更新的。新错误:{Message:Invalid JSON primitive:mappingData.,StackTrace:at System.Web.Script.Serialization由于此错误,我尝试了一些操作different@Gaurav123尝试像{'mappingData':'+myArray+'}一样传递myArray,您的意思是将数据作为数据发送:{“mappingData”:“+myArray+”}请同时显示您的html,div.ColumnAlias p和div.ddlTableNames选择内容认真吗?您无法发现?我发现了我的朋友,但它仍然不起作用。那么为什么,在您发现这个明显的错误后,您将其留在您的问题中?????您在跟踪我们吗?即使在发现它不起作用后。我尝试了很多方法好的……尝试一下你想这样做,并且只让我知道你这边做了一次。你难道看不到我们面临的错误吗。看看Zee的答案。我想我错过了它;顺便说一句,谢谢你的帮助。我尝试了很长时间,但在与你讨论后,我有了一些想法,我尝试并成功了:巨魔。​​​​​​​​​ Zee是木偶吗?