2012-12-04 149 views
0

我對JSON很新。我已經嘗試了JSON的基礎知識,但在使用它的示例中,它是在數組中,鍵是字符串。礦是完全不同的,它的一個對象,關鍵是一個數字。我的JSON對象的示例是var ojbJSON = {55: 3, 23: 2};。我的問題是我無法獲取對象的長度,因爲它沒有屬性長度,如果我執行類似alert(objJSON.55);的值來獲取值3,則會導致javascript錯誤。請不要問我爲什麼堅持這一點。請幫忙。謝謝。JSON - 如何遍歷json對象?

+0

well accord對於[JSON規範](http://json.org/),你所擁有的構造甚至不是有效的JSON:一個對象(這是你基於它周圍的'{}'所構成的對象,它由名稱 - 值對,其中名稱應該是一個字符串。 IMO這種非標準的用法註定會導致問題的某個地方... – fvu

回答

1

你必須重複,以獲取計數:

var i=0; 
for (var key in objJSON) i++; 
alert(i); 

你可能會想要寫這樣的幫手,是這樣的:

function getLength(obj) { 
    var i=0; 
    for (var key in objJSON) i++; 
    return i; 
} 
alert(getLength(objJSON)); 

爲了得到一個鍵時,它不是」 t有效的Javascript變量名稱(如數字或包含連字符的名稱等),可以使用括號表示法:

alert(objJSON[55]); 
+0

你的回答真的很有幫助,但我有一些奇怪的事情發生我試過這個(var key in objJSON)alert(key +「:」 + objJSON [key]); '但是它的順序相反。 – NinjaBoy

+0

@NinjaBoy哇,你是對的...這很奇怪。不確定那是關於什麼的。順便說一句,如果你要做大量的對象操作,可能需要檢查Underscore.js。它具有實用的方法,如獲取對象中的所有鍵或值,排序,分組等。 – McGarnagle

+0

謝謝。我會嘗試! – NinjaBoy