json解析错误 - 未捕获TypeError:无法使用'in'运算符来搜索'1009'

时间:2016-10-28 10:16:56

标签: php jquery json

我正在开发一个应用程序,它对PHP脚本执行Ajax调用,返回json_encode数据。

正如预期的那样从PHP返回数据。但是当试图在jquery中解析它时,我收到一个控制台错误:

  

未捕获TypeError:无法使用'in'运算符搜索'1009'

然后是我的数据数组的副本。

json编码数据的一个例子如下:

[
{"u_id":"21747","fname":"Andy","lname":"","email":"foo@bar.com"},
{"u_id":"3748","fname":"John","lname":"","email":"foo@baz.com"},      
{"u_id":"451750","fname":"Peter","lname":"","email":"someone@else.com"},
]

我正在使用的jquery如下。所需的输出是显示一个复选框旁边的人员电子邮件地址列表:

$(function() {
    $('#myModal').on('shown.bs.modal', function() {
        $(".modal-body").html("Loading...");
            $.ajax({
                url: "<?= $router->pathFor('/admin/ajax/find-user'); ?>",
                data: {
                    searchInput: $('#searchInput').val()
                },
                method: "POST",
          }).done(function(data) {
             //$(".modal-body").html(data);
             $.parseJSON(data);
             $.each(data, function(key, value){
                 $(".modal-body").html('<input type="checkbox" id="' + value.u_id + '">' + value.email + "<br>");
          });
      });
    });
});

这有什么问题,错误意味着什么(我在数据的任何地方都看不到1009,虽然不确定这是不是真的意味着什么?)

2 个答案:

答案 0 :(得分:2)

您需要首先解析您的JSON数据:

var parsedData = $.parseJSON(data);

但是如果您的PHP脚本返回带有正确Content-Type的JSON,那么您不需要这样做。如果您确保PHP脚本发送Content-Type: application/json,jQuery会在提供给您之前自动解析它。这是解决问题的另一种方法。

答案 1 :(得分:-2)

不太确定!! 但你可以试试 largeJSONobject.data 喜欢 $ .each(largeJSONobject.data,function(key,value){         $(“。modal-body”)。html(''+ value.email +“
”); });