Jquery-Json在ajax调用之后返回[object,object]

时间:2013-01-29 11:51:38

标签: jquery ajax json

我有以下ajax调用我的服务从数据库中取出一些记录并在我的前端填充它...但我得到了json:意外的字符错误...请你帮我解决这个问题.. 。

'http://localhost/WcfService/Service1.svc/remarksList';

    var tempyear="";

    $.ajax({
                    url: urlToHandler,
                    data:JSON.stringify({oei:{"reqNo1":reqNo,"loginid":userid}}),
                    type: 'POST',
                    dataType:"json",
                    contentType: 'application/json',
                    success: function(data) {    

                    alert(data.fillRemarksListResult);
                    myData = JSON.parse(data.fillRemarksListResult, function (key, value) {
        var type;
        if (value && typeof value === 'object') {
            type = value.type;
            if (typeof type === 'string' && typeof window[type] === 'function') {
                return new (window[type])(value);
            }
        }
        return value;
    });
    alert(myData);
        $.each(data.fillRemarksListResult,function(key,val){


                alert(val.rmrkreqNo1);
                        });
                    },
                    error: function(data, status, jqXHR) {                       
                        alert('There was an error.');
                    }
                }); // end $.ajax

});

现在我收到此错误:

* Json.parse:意外的角色 myData = JSON.parse(data.fillRemarksListResult,function(key,value){ *

也是我的AJAX CALL RETURNS [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]作为alert提供......

1 个答案:

答案 0 :(得分:9)

有两种方法可以解决此问题

方式1]

dataType:"json",电话中移除$.ajax。 Ans使用JSON.parse()

方式2]

保持dataType:"json",不变,不要使用JSON.parse()

为什么选择

原因如下。 根据{{​​1}} API文档,当您指定$.ajax()属性时,jQuery将自动dataType:'json'来自服务器的响应,并将parse d JSON对象传递给您的成功回调。

在这种情况下,您重新parse JSON对象,这就是抛出错误的原因。

因此要么不指定parse并解析返回的字符串 要么 指定dataType:"json"并且不解析它。