访问json数据

时间:2010-07-29 11:06:26

标签: php javascript json

我正在使用这个数组(作为例子)
http://pastebin.com/M0ZJgAVs

我正在使用json_encode()并使用javascript

获取它

有人关心告诉我

获取num行,我只需使用

var numrows = json['numrows'];

并遍历每一行  我会用

吗?
for(row in json['rows']) {
}

然后在那里到达每个数据点我将只使用

for(data in row) {

}

还是我完全偏离轨道?

3 个答案:

答案 0 :(得分:0)

是的,你是正确的。

for(row in json['rows']) {
  for(data in row) {
     document.write(data);
  }
}

答案 1 :(得分:0)

for(row in json['rows']) {
  for(entry in json['rows'][row]) {
     document.write(json['rows'][row][entry]);
  }
}

答案 2 :(得分:0)

如果您在JavaScript中收到反序列化的JSON数据作为对象json,那么代码可能如下所示

var rows = json.rows; // cache json.rows array in a variable for better performance
for (var iRow=0, cRows = rows.length; iRow<cRows; iRow++) {
    var row = rows[iRow];
    for (var iData=0, cData = row.length; iData<cData; iData++) {
        var data = row[iData];
        // do something with the data like
        // alert(data);
    }
}

通常,您通常以反序列化的形式接收JSON数据作为对象(例如,如果您使用jQuery.ajax)。因此,JavaScript中的数据访问非常简单。它只是访问对象的字段或访问数组的元素。出于性能目的,最好始终将索引循环用作"for in"循环(请参阅http://www.jslint.com/lint.html#forin)。如果访问对象的属性(如属性rows),最好使用点分表示法(json.rows)作为索引表示法(json[rows])。最后一条建议是在局部变量(如var row=rows[iRow]或var cRows = rows.length)中缓存属性值,如果您更多地访问该属性,则总是如此。

您可以从http://jquery-howto.blogspot.com/2009/06/javascript-for-loop-vs-jquery-each.html找到有关枚举数组中数据的更有效方法的有趣信息(另请阅读评论中建议循环的最新版本)。

在JSLint中验证JavaScript代码也是一个好主意(参见http://www.jslint.com/)。