$.getJSON|的jQuery$.each无法从多维数组中获取值



我希望我的jQuery代码与底部提供的PHP的代码相同,但1.5天后,我没有找到任何有用的信息。

<script>
$(document).ready(function(){
var studNt = $.getJSON('http://127.0.0.1/includes/klradGetNt.php/');
studNt = studNt.emp
studNt = studNt.id1;
$.each(studNt.stud, function (key, value){
// alert("student id: "+ value +".");
});
});
</script>

varstudNt检索

{
"emp": {
"id1": {
"stud": [
"1",
"7"
]
},
"id2": {
"stud": [
"5"
]
}
}
}

我用PHP编写的代码可以很好地完成我需要它做的事情。在得到Json文件后,这就是我希望它做的,但在jQuery中:

$data[] = array();
$data = file_get_contents("http://127.0.0.1/includes/klradGetNt.php/");
$data = json_decode($data, true);
foreach ($data['emp']['id1']['stud'] as $key => $value){
echo 'student: '. $value .'. ';
}

php返回的内容

student: 1. student: 7.

这几天我也读过其他的帖子,但我仍然没有被低估。

任何在正确方向上的帮助都非常感谢和谢谢

从AJAX调用返回的结构是一个对象,而不是数组。这可能就是为什么你的研究工作没有找到答案的原因。

您显示的PHP的等效JS代码将通过键访问对象(及其属性中的子对象(,然后在stud数组上使用forEach()循环,如下所示:

studNt.emp.id1.stud.forEach(value => console.log(`student: ${value}`);

还要注意,您需要将依赖于AJAX请求响应的任何逻辑(如$.getJSON()中所用(放入回调参数中,或从$.getJSON()返回的jqXHR对象链接。

话虽如此,你的完整代码块应该是这样的:

jQuery($ => {
$.getJSON('http://127.0.0.1/includes/klradGetNt.php/', studNt => {
studNt.emp.id1.stud.forEach(value => {
console.log(`student: ${value}`);
})
});
});

最新更新