我试图在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);