当前位置: 首页 > 面试题库 >

jQuery JSON遍历嵌套对象

隗驰
2023-03-14
问题内容

我目前有这个:

    $.getJSON('test.json', function(data) {
      var items = [];

      $.each(data, function(key, val) {
        items.push('<li id="' + key + '">' + val + '</li>');
      });

      $('<ul/>', {
        'class': 'my-new-list',
        html: items.join('')
      }).appendTo('body');
    });

test.json看起来像这样:

{"key1":{"key11":"value11","key12":"value12"},"key2":"value2","key3":"value3"}

我越来越:

[object Object]
value2
value3

如何更改它,以便无论我拥有多少嵌套值,它都将循环遍历所有嵌套项目?

所以对于上面的例子,我会得到

value1
    value11
    value12
value2
value3

问题答案:

您可以创建一个递归循环函数,但是会遇到一个问题:当属性是对象时,因为没有字符串,所以没有文本可显示。因此,您将得到:

- - value11
  - value12
- value2
- value3

因为while value2是为项目#2显示的字符串,所以它是为项目#1显示的对象。

无论如何,这就是我组成的:http :
//jsfiddle.net/uXww2/。

// obj is the object to loop, ul is the ul to append lis to
function loop(obj, ul) {
    $.each(obj, function(key, val) {
        if(val && typeof val === "object") { // object, call recursively
            var ul2 = $("<ul>").appendTo(
                $("<li>").appendTo(ul)
            );

            loop(val, ul2);
        } else {
            $("<li>", {
                id: key
            }).text(val).appendTo(ul);
        }
    });
}

$.getJSON('test.json', function(data) {
  var ul = $("<ul>");

  loop(data, ul);

  ul.addClass("my-new-list").appendTo('body');
});


 类似资料:
  • 问题内容: 我试图遍历嵌套对象以检索由字符串标识的特定对象。在下面的示例对象中,标识符字符串是“ label”属性。我无法解决如何遍历树以返回适当对象的问题。任何帮助或建议,将不胜感激。 问题答案: 您可以创建像这样的递归函数来对对象进行深度优先遍历。 可以这样称呼

  • 问题内容: 我必须遍历json数组对象。 它具有以下结构。 基本上我在做的是prod_1是产品的名称,并且prod_1的版本列表已填充在其中。 所以现在我想要的是产品的名称以及它的版本。 问题在于可能有很多产品和该产品下的许多版本。所以我需要可以在 javascript 中使用适当的循环结构来对其进行处理。 最好将循环将产品名称存储在一个变量中,将版本存储在另一个变量中,因为我需要对产品名称进行一

  • 问题内容: 我有一个嵌套的数据结构。我想使用模块读取其键和值。数据结构像下面这样。 我试图使用波纹管方式读取字典中的键,但出现错误。 码 错误 所以任何人都可以解释错误的原因以及如何遍历字典。 问题答案: 作为请求的输出,代码如下所示 代替您也可以使用,但是效率更高并且返回迭代器。 希望这可以帮助 :)

  • 我试图解剖一个深度嵌套的对象。遍历它并将数据拉到一个单个级别的对象,然后再与一个更大的对象结合在一起。我可以用下面的代码遍历它,但它不是动态的。这只有在我知道它的4个物体深度的情况下才起作用。实际上它可以是1->n深。我还有一个函数,它在该级别检查值的类型,并对其进行相应的处理。现在这对我很管用 这里是顶层 下面是每一个级别: 希望这是足够的上下文来了解我当前在做什么。现在,我有数据可以通过一个数

  • 问题内容: 我试图遍历字典并打印出所有值不是嵌套字典的键值对。如果值是字典,我想进入它并打印出它的键值对…等等。有什么帮助吗? 这个怎么样?它仍然只打印一件事。 完整的测试用例 字典: 结果: 问题答案: 如Niklas所说,你需要递归,即你想定义一个函数来打印你的字典,如果值是一个dict,则想使用这个新字典来调用你的打印函数。 就像是 : 或从Python 3开始:

  • 问题内容: 好的,现在我这里有一个无序列表: 基本上,我只想将此数据转换为JSON实体。我想在 Jquery中 完成此操作,而且我觉得我很难过。上面的列表只是一个例子,实际上,我的列表理想情况下将有更多的孩子,并且深度可能是n级(意思是,它将有孙子孙的孙子……或更多)我失去了无数数小时的睡眠,我不认为我会去任何地方:( 我想提取这些东西:锚点内的文本,锚点的url和锚点的标题,并将它们放到JSON