Javascript 如何迭代JSON数据

Javascript 如何迭代JSON数据,javascript,json,Javascript,Json,以下是我在div中的JSON数据: [{"Identifier":"1","Label":"10 Day","Categories":"Standard","UpdatedBy":"Lno","UpdatedAt":"01-02-2013","RefId":"0","ComType":"1","Cs":["944"],"AM":"Error Message","Message":"asdfasdf","Combiner":[{"uniqueID":"1","type":"7","rule":""

以下是我在
div
中的JSON数据:

[{"Identifier":"1","Label":"10 Day","Categories":"Standard","UpdatedBy":"Lno","UpdatedAt":"01-02-2013","RefId":"0","ComType":"1","Cs":["944"],"AM":"Error Message","Message":"asdfasdf","Combiner":[{"uniqueID":"1","type":"7","rule":""}]}]
我通过JS对象访问它:

var myArrayVar=JSON.parse(document.getElementById("populateDT").innerHTML);
我想迭代这个JS对象。以下是我的代码,但它不访问我的键/值字段:

for(var i=0; i<=myArrayVar.length;i++){
    for(var j=0; j<=myArrayVar.Combiner.length; j++){
        var sessionUniqueId= myArrayVar.Combiner[j].uniqueID;
        alert(sessionUniqueId);
        var sessionType=myArrayVar.Combiner[j].type;
        alert(sessionType);
        var sessionRule=myArrayVar.Combiner[j].rule;
        alert(sessionRule);
    }
}

for(var i=0;i尝试使用“尝试使用”您从未使用过
i
。您需要它来访问当前数组元素,例如:

for(var j=0; j<=myArrayVar[i].Combiner.length; j++){

另外,
i
不能等于
myArrayVar.length
,因为该索引已超出范围。您的循环条件应具有
您从未使用过的
i
。您需要它来访问当前数组元素,例如:

for(var j=0; j<=myArrayVar[i].Combiner.length; j++){

另外,
i
不能等于
myArrayVar.length
,因为该索引已超出范围。循环条件应为
您有一个包含一个元素的数组。该元素位于
myArrayVar[0]
中,并且是一个对象。若要在该对象上迭代,请使用循环


您还应该使用进行调试。它将向您显示比alert更多的有关对象的信息。

您有一个包含一个元素的数组。该元素位于
myArrayVar[0]
中,它是一个对象。若要在对象上迭代,请使用循环

for (var i = 0; i < myArrayVar.length; i++) {
    for (var j = 0; j < myArrayVar[i].Combiner.length; j++) {
        var sessionUniqueId = myArrayVar[i].Combiner[j].uniqueID;
        alert(sessionUniqueId);
        var sessionType = myArrayVar[i].Combiner[j].type;
        alert(sessionType);
        var sessionRule = myArrayVar[i].Combiner[j].rule;
        alert(sessionRule);
    }
}
您还应该使用进行调试。它将向您显示比警报更多的对象信息。

for(var i=0;ifor (var i = 0; i < myArrayVar.length; i++) {
    for (var j = 0; j < myArrayVar[i].Combiner.length; j++) {
        var sessionUniqueId = myArrayVar[i].Combiner[j].uniqueID;
        alert(sessionUniqueId);
        var sessionType = myArrayVar[i].Combiner[j].type;
        alert(sessionType);
        var sessionRule = myArrayVar[i].Combiner[j].rule;
        alert(sessionRule);
    }
}
对于(var j=0;j
用于(变量i=0;i
我看到了一些问题。首先,你的
I
j
变量走得太远了一点。他们应该使用
我看到了一些问题。首先,你的
I
j
变量走得太远了一点。他们应该使用
是否可以让我知道如何修复I我的答案是什么?你怎么能这么肯定它永远只有一个element@Ankit我不能确定,但我可以非常确定。即使只有一个结果,很多API也会返回一个数组作为结果集。我认为如果可能的话,OP会在数组中显示包含多个元素的JSON。是的,可能有数组中有多个元素。但我认为我在myArrayVar上出错了,否则应该是myArrayVar[0],我会试试这个。谢谢你的帮助,@PaulproCould投票人请让我知道在我的答案中要修改什么?你怎么能这么肯定它总是只有一个element@Ankit我不能确定,但我可以非常确定。很多API将返回一个数组作为结果集,即使只有一个结果。我认为如果可能的话,会在数组中显示包含多个元素的JSON。是的,数组中的一个元素可能包含多个元素。但我认为我在myArrayVar上出错了,否则应该是myArrayVar[0],我将尝试此操作。谢谢您的帮助,@Paulpro