不能使用'in'操作符!”同时在AJAX jQuery中获取JSON字符串响应


"Cannot use 'in' operator.." while fetching JSON string response in AJAX jQuery

我试图在laravel中创建一个JSON数组,然后试图通过ajax jquery获取它。它确实创建了JSON,但从jquery获取JSON时会产生问题。我无法在那里获取键值对。

以下是在Laravel (PHP)中创建JSON数组的代码:
foreach ($userIds as &$userId) {
    $data[] = json_encode(array("Id"=>$id,"Name"=>$name,"HashId"=>$hashId));
}
return $data;

p。$data表现出这样的响应:

[
  "{"Id":"111","Name":"abc","HashId":"I1J6EDO"}", 
  "{"Id":"112","Name":"xyz","HashId":"MDLYW9K"}"
]

这是我如何尝试调用ajax req:

$.ajax({
        type: 'GET',
        url: '/url/goes/here',
        dataType: "json",
        success: function(data) {
            $.each(data, function(key, value){
                $.each(value, function(key1, value1){
                    console.log(value1);
                });
            });
        }
});

控制台显示错误:Uncaught TypeError: Cannot use 'in' operator to search for..

经过一番搜索,我明白,也许响应是字符串JSON数组,而不是JSON数组或obj(如预期)

我需要帮助获取键值对。我也愿意改变我在laravel中编码JSON的方式。请帮助我,因为我是新的JSON和AJAX

您应该在构建数组后对所有内容进行编码

$data = array();
foreach ($userIds as $userId) {
    $data[] = array("Id"=>$id,"Name"=>$name,"HashId"=>$hashId);
}
return json_encode($data);