我正在使用这个数组(作为例子)
http://pastebin.com/M0ZJgAVs
我正在使用json_encode()并使用javascript
获取它有人关心告诉我
获取num行,我只需使用
var numrows = json['numrows'];
并遍历每一行 我会用
吗?for(row in json['rows']) {
}
然后在那里到达每个数据点我将只使用
for(data in row) {
}
还是我完全偏离轨道?
答案 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/)。