在javascript中引用带变量的json数字键

时间:2014-11-27 14:25:55

标签: javascript json

如何遍历此数据:(我无法控制格式)

{"rowCount":3,"1":{"K":"2009","V":"Some Data"},"2":{"K":"2010","V":"More Data"}}

上面是console.log(结果),结果是一个字符串

var r = JSON.parse(results);
var t;

for(var i=1;i<=r.rowCount;i++) {
    t=r[i].V;
    tableData.push(     
        {title:t, year:'2009', hasChild:true, color: '#000'}
    );                                      
}               

错误:TypeError:'undefined'不是对象(评估'r [i] .V')

我无法评估变量i。我究竟做错了什么? 感谢

更新

传入的数据导致错误的行数不正确。然而,接受的答案是正确的...只是我的用户错误没有捕获错误的传入数据。如果我在循环中放置一个console.log,我会意识到错误实际上是在两次成功循环之后发生的。糟糕

1 个答案:

答案 0 :(得分:3)

  • 我认为r.rowCount应为j.rowCount

  • 理想情况下,如果您还没有(i关键字),也应该初始化var变量。

  • (我还将var t声明移到了循环之外,以明确说明它始终是t相同而你只是改变它的价值。你不应该每次都用var重新宣布它 - 虽然我怀疑这会影响输出。)


var j = {"rowCount":2,"1":{"K":"name","V":"john"},"2":{"K":"name","V":"sue"}};  
var t;

for (var i = 1; i <= j.rowCount; i++) {
    t = j[i].V;
    console.log(t);
} 

Working demo – JSFiddle