我有这个带有嵌套数组>队列列表的JSON文件。
[{
"id_shop": "2",
"shop_name": "Brackets",
"queue_list": [{
"id_queue_current": "1",
"queue_name": "Queue 1",
"queue_current_number": "12"
}, {
"id_queue_current": "2",
"queue_name": "Queue 2",
"queue_current_number": "23"
}]
}]
使用我的jQuery / ajax,我可以正确读取id_shop和shop_name,但是不能读取queue_list中的元素。如何访问这些元素?
$.ajax({
type: "GET",
url: "shop_list.php",
dataType: 'html',
success: function(data) {
data = JSON.parse(data);
data.forEach(function(dataItem){
var id_shop = dataItem.id_shop;
var shop_name = dataItem.shop_name;
var queue_current_number = dataItem.current_number;
var queue_name = dataItem.queue_name; //this element
$("#header h1").html('<div>'+shop_name+'</div>');
$("#shop_queue").html('<li data-categoryId ="'+id_shop+'"><a href="#shop_'+id_shop+'">'+queue_name+'</a></li>');
});
}
});
非常感谢您!
答案 0 :(得分:1)
尝试以下解决方案,
var test =
[{
"id_shop": "2",
"shop_name": "Brackets",
"queue_list": [{
"id_queue_current": "1",
"queue_name": "Queue 1",
"queue_current_number": "12"
}, {
"id_queue_current": "2",
"queue_name": "Queue 2",
"queue_current_number": "23"
}]
}]
test.forEach(function(dataItem){
var id_shop = dataItem.id_shop;
var shop_name = dataItem.shop_name;
var queue_data = dataItem.queue_list;
queue_data.forEach(function(queueItem){
var queue_id= queueItem.id_queue_current;
alert(queue_id);
var queue_name= queueItem.queue_name;
alert(queue_name);
var queue_current_number= queueItem.queue_current_number;
alert(queue_current_number);
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:0)
您可能必须在成功方法中做类似的事情
var queue_name;
var queue_lst = dataItem.queue_list.each(function(item, index){
queue_name=JSON.parse(item).queue_name;
});
答案 2 :(得分:0)
仅通过调用queue_list
或dataItem.current_number
就无法读取和访问dataItem.queue_name
中的元素。您可以通过queue_list
调用queue_list
和dataItem.queue_list.current_number
之类的元素来访问JSON对象dataItem.queue_list.queue_name
中的元素。
希望这可以解决问题。