【问题标题】:jquery reading nested jsonjquery读取嵌套的json
【发布时间】:2010-10-25 17:18:01
【问题描述】:

我有以下 json,如下所示。我正在尝试读取 TOP1、TOP2 的值。我有点不确定该怎么做。

我正在使用以下 .. 但这只是让我得到一个对象,其中包含 TOP1 和 TOP2 的嵌套对象。如何获得 TOP1 和 TOP2 的值??

$.getJSON('http://localhost/data/menufixed.json',
    function(data) {            
        $.each(data, function(entryIndex, entry) {
            var html = '<li class="top-level">';

        });
    });

还有下面的数据

{
"actions" : [
    {
        "action": "TOP1",
        "subaction": [
            {
                "name": "A" 
            },
            {
                "name": "B" 
            },
            {
                "name": "C" 
            } 
        ] 
    },
    {
        "action": "TOP2",
        "subaction": [
            {
                "name": "X" 
            },
            {
                "name": "Y" 
            } 
        ] 

【问题讨论】:

    标签: jquery json nested


    【解决方案1】:

    看起来你想循环通过.actions,所以改变这个:

    $.each(data, function(entryIndex, entry) {
      var html = '<li class="top-level">';
    });
    

    到这里:

    $.each(data.actions, function(entryIndex, entry) {
      var html = '<li class="top-level">' + this.action + '</li>';
    });
    

    使用data.actions,您现在正在遍历该对象数组,那些对象是具有.action属性的对象,例如:"TOP1"和"TOP2"。

    【讨论】:

    • 这就是我感谢尼克之后的事情!我如何访问 ABC / YX 数据?
    • @imerez - Inside 上面的 $.each() 回调,你会做 $.each(this.subaction, function() { alert(this.name); });,这会给你 A、B、C 等 - 在这里测试一下:jsfiddle.net/nick_craver/mHvvA/2
    • 感谢这就是我所追求的......感谢优秀的资源 jsfiddle 也:P
    【解决方案2】:

    10 年后,我正在回答这个等式。使用对象的多维数组,可以检索内部值。

    $(document).ready(function() {
        $.each(data.actions, function(i, elementText) { 
        displayHTML += '<div><h2>' +elementText.action+ '</h2></div>';
    
      $.each(elementText.subaction, function(j, elementSubText) { 
      displayHTML += '<li><span>' +elementSubText.name+'</span></li>';
      });
    });
    $("#listing").append(displayHTML);
    });
    

    这里是小提琴链接:https://jsfiddle.net/ssuryar/h9vxeuzn/ - JSFIDDLE

    【讨论】:

      猜你喜欢
      • 2021-04-11
      • 2017-03-28
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      • 2016-09-10
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多