使用jQuery循环遍历JSON结果

5
我有以下JSON响应,但我不确定如何正确地循环遍历并使用它。
{
  "ID": 1,
  "Name": "dept1",
  "Categories": [
    {
      "ID": 1,
      "Name": "catg1"
    },
    {
      "ID": 2,
      "Name": "catg2"
    }
  ]
}

下面的代码会弹出部门ID,它是1,然后是它的名称'dept1',最后是这个:'[object Object],[object Object]'

$.getJSON("mainPage2.aspx", function(result) {
   $.each(result, function(i, item) {
      alert(this);
   });
});

我想做的就是使用部门信息创建一个div,并在其中创建另一个div,其中包含属于该部门的类别信息。

2个回答

7

好的,它显示已成功获取对象,您尝试过了吗?

    $.getJSON("mainPage2.aspx", function(result) {
   $.each(result, function(i, item) {
      alert(item.Name);
   });
});

作为从每个函数传递的对象,它应该捕获并弹出“dept1”或其他设置的文本

如果您想循环遍历类别,则需要进行另一个循环,例如:

    $.getJSON("mainPage2.aspx", function(result) {
   $.each(result, function(i, item) {
      alert(item.Name);
        $.each(item.Categories, function(i, cat) {
           alert(cat.Name)
        }
   });
});

你的解决方案很有道理,但是返回了“未定义”。 - Batu

4
for(var key in result) {
    var value = result[key];
    if(typeof value == 'object') {
        if(value instanceof Array) {
            // an array. loop through children
            for(var i = 0; i < value.length; i++) {
                var item = value[i];
            }
        } else {
            // complex object, not array. inner for loop on keys?
        }
    } else {
        // regular string/number etc. just print out value?
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接