jQuery检索JSON数据错误

时间:2015-02-09 07:10:01

标签: jquery ajax json

首先,我想告诉你,我搜索并没有从stackoverflow的上一篇文章中找到解决我问题的任何解决方案。所以我在这里发布我的问题。

以下是echo json_encode($flterarr);后返回的数据 {"2":{"surname":"Winchester","mobile":"07898989898","license":"1234567890b"},"3":{"surname":"winchester","mobile":"07898989891","license":"1234567890bytfty"},"4":{"surname":"Test","mobile":"07678543210","license":"23frd"}}

以下是我的ajax代码

$.ajax(

    { 

        type:"POST",                                    

        url: '../icabz/filterRefresh.php',   

        data:  "filter_reset_surname="+filter_reset_surname+"&filter_reset_mobile="+filter_reset_mobile+"&filter_reset_reg_num="+filter_reset_reg_num+"&filter_reset_approval_status="+filter_reset_approval_status+"&filter_reset_logged_status="+filter_reset_logged_status,
        success: function(data)

        {
            alert(data);
            $.each( data, function(key,val) {

            alert(val);
                /*$.each( val, function( key1, val1 ) {

                alert(val1.surname);
                });*/
            });
        }

    });

当我提醒从php页面返回的原始数据(不使用dataType:"json" or $.parseJSON(data))时,它显示数据。但是当我在$.each()函数中提醒返回的数据时,它显示了单词并显示在控制台中关注。

TypeError: invalid 'in' operand obj
typeof length === "number" && length > 0 && ( length - 1 ) in obj;

现在,如果我尝试使用dataType:"json" or $.parseJSON(data)并提醒数据,那么它会显示[object Object]。 我使用的是jQuery 1.11.1版本。

如何获取数据以获取姓氏?

2 个答案:

答案 0 :(得分:0)

你应该使用dataType:"json" 现在,尝试警告data["2"].surname,你应该得到“温彻斯特”。 如果你想迭代你的对象,你可以这样做:

for (var key in data) { console.log(key, data[key]); }

taken from here

for (var key in data) {
   for (var skey in data[key]) {
        console.log(skey);
   }
}

答案 1 :(得分:0)

使用dataType : "json"

然后,在下面的成功部分中尝试:

data= JSON.parse(data);

jQuery.each(data, function(key,val){
    alert(val.surname);
});

http://jsfiddle.net/sachint/pryotLxj/