2013-12-08 29 views
0

我想知道我的JSON對象中有多少項。我看到很多答案,但他們都處理一個共同的價值來循環。我想要結果告訴我,此對象中有2個項目。任何幫助將是偉大的!獲取JSON對象中數組的長度

[{"manager_first_name":"jim","manager_last_name":"gaffigan"}] 

回答

2

您可以在較新的瀏覽器中使用Object.keys。它會返回對象中的所有鍵的數組,數組將有一個length屬性,將告訴你有多少項目存在的對象:

var arr = [{"manager_first_name":"jim","manager_last_name":"gaffigan"}]; 

var length = Object.keys(arr[0]).length; 

FIDDLE

在非支持瀏覽器,你要遍歷

var arr = [{"manager_first_name":"jim","manager_last_name":"gaffigan"}]; 
var i = 0; 

for (var key in arr[0]) i++; 

FIDDLE

+0

在IE上這隻適用於IE> = 9 – Keeper

+0

謝謝,這就是我一直在尋找的東西。簡單而乾淨。 –

0

你可以這樣做:

var arr = [{"manager_first_name":"jim","manager_last_name":"gaffigan"}], 
length = 0, 
obj = arr[0]; // Get first obj from array 

for(var k in obj){ 
    if(obj.hasOwnProperty(k)) { 
     length++; 
    } 
} 
console.log(length); // Shows 2 

您應該使用hasOwnProperty,因爲您還可以使用函數擴展Object,否則也可能會出現count als鍵。

鏈接:

+0

如果您知道對象的原型鏈具有需要避免的可枚舉屬性,則只應使用'.hasOwnProperty'。而且沒有理由不提前知道這一點。 –

0

嘗試

var jsonArr = [{"manager_first_name":"jim","manager_last_name":"gaffigan"}]; 
var itemCount = JSON.stringify(jsonArr).split('":"').length - 1; 

這,當然,這樣做的一個相當粗(和不可靠)的方式,但如果你只是想項目數量,這應該像一個魅力。

+0

除非在鍵或值中碰巧有':'字符。 –

+0

恩,是的,我確實說過粗俗。此外,棘手的氣質的事情,魅力 – tewathia

+0

但這不僅僅是粗糙。這是不可靠的。如果這樣的人物找到了方向,就不會有任何警告。結果將會不準確。 –