如果您收到在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/)。
你試過了嗎? ;) – 2010-07-29 11:22:42