【问题标题】:Get nested elements array JSON file获取嵌套元素数组 JSON 文件
【发布时间】:2018-09-05 09:29:43
【问题描述】:

我有这个带有嵌套数组的 JSON 文件 > queue_list。

[{
    "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>');
         });
         }
    }); 

非常感谢!

【问题讨论】:

    标签: jquery arrays json ajax nested


    【解决方案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);
                })
             })
       
    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

    【讨论】:

      【解决方案2】:

      你可能必须在你的成功方法中做这样的事情

      var queue_name;
      
              var queue_lst = dataItem.queue_list.each(function(item, index){
                  queue_name=JSON.parse(item).queue_name;
              }); 
      

      【讨论】:

        【解决方案3】:

        您不能仅通过调用dataItem.current_numberdataItem.queue_name 来读取和访问queue_list 中的元素。您可以通过queue_list 调用元素来访问JSON 对象queue_list 中的元素,例如dataItem.queue_list.current_numberdataItem.queue_list.queue_name

        希望这能解决问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-18
          • 1970-01-01
          • 1970-01-01
          • 2016-02-11
          • 2021-04-17
          相关资源
          最近更新 更多