【问题标题】:Parsing nested array objects in json using Java script/jQuery [closed]使用 Javascript/jQuery 解析 json 中的嵌套数组对象 [关闭]
【发布时间】:2016-11-29 22:49:56
【问题描述】:

我有一个这样的 JSON 文件:

{[
    {"name":"avc"},
    {"name":"Anna"},
    {"name":"Peter"},
    {"Folder":[
           {"name":"John"},
           {"name":"Anna"},
   {"Folder":[ 
          {"name":"gg"},
          {"name":"hh"}
        ]
    }
  ]
 }
]

}

它可以嵌套到任意数量的级别。 我想遍历这个文件任意数量的级别。 如何使用 Javascript/JQuery 实现这一目标

谢谢

【问题讨论】:

标签: javascript jquery json


【解决方案1】:

您可以使用 Array#forEach 进行迭代,如果 Folder 是一个数组,那么也对其进行迭代。

var a = [{ "name": "avc" }, { "name": "Anna" }, { "name": "Peter" }, { "Folder": [{ "name": "John" }, { "name": "Anna" }, { "Folder": [{ "name": "gg" }, { "name": "hh" }] }] }];

a.forEach(function iter(a) {
    if (Array.isArray(a.Folder)) {
        a.Folder.forEach(iter);
        return;
    }
    console.log(a.name);
});

【讨论】:

    【解决方案2】:

    我读到你的问题是这样的:

    如何遍历一个对象数组,其中一个对象可能有 它自己的孩子。而且每个孩子都可能有孩子等等……

    一种方法是写一个递归函数,这是一个调用自身的函数。这是一个递归函数,它将每个帖子记录到控制台中。 请注意,我已将您的模型更改为适当的对象。另外,我已经为文件夹添加了名称,但如果不需要,可以将其删除。

    var a = [
        {name:"avc"},
        {name:"Anna"},
        {name:"Peter"},
        {name:"Folder name1",
         folder:[
               {name:"John"},
               {name:"Anna"},
       {name: "Folder name2",
        folder:[ 
              {name:"James"},
              {name:"Clark"},
              {name: "Folder name3",
               folder:[
                 {name:"Cecilia"},
                 {name:"Clara"}
               ]},
              {name:"Stephen"}
            ]
        }
      ]
     }
    ];
    
    
    
    function read(obj){
        for(var i = 0; i < obj.length; i++)
        {
            console.log(obj[i].name); // Or do what you need here...
            if(obj[i].folder)
            {
              // Recursive call
              read(obj[i].folder);
            }
        }
    }
    
    read(a);

    【讨论】:

      猜你喜欢
      • 2015-04-23
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      相关资源
      最近更新 更多