2011-12-02 49 views
1

我有一個成功的功能得到一個對象:如何從JavaScript中的對象獲取鍵值?

success: function(json) { 

} 

json[>Object , >Object , >Object, ...]

每個對象,我有一些鍵和值內:

object[ 
    test: yes 
    testing: no 
] 

我試圖獲取這些值和鑰匙,並將它們放在一個div元素中:

for (var object in json) 
{ 
    for (var objects in json[object]) 
    { 
     var obj = jQuery.parseJSON(json[object][objects]); 
     $('#details').append(obj); 
    } 
} 

這會給我所有的物體一個接一個搗碎在一起。我想能夠知道鑰匙,所以我可以安排他們有點在表或任何想法?

回答

3

您似乎它已經完成,objects應的按鍵:

for (var object in json) 
{ 
    for (var objects in json[object]) 
    { 
     //here `objects` will be a key 
     var obj = jQuery.parseJSON(json[object][objects]); 
     $('#details').append(obj); 
    } 
} 

這裏是演示的jsfiddle:http://jsfiddle.net/jasper/FmDU9/1/

在一個側面說明:for (var i = 0; i < len; i++){for (var object in json)這麼快很多如果您要遍歷一組對象,請使用for (var i = 0; i < len; i++){遍歷數組。這裏有一些證明:http://jsperf.com/for-in-tests/2

+0

謝謝,這樣做 – Patrioticcow

+0

如果你不介意的話,還有一件事。你怎麼知道巫婆是女巫。如果我只想選擇某個特定值,該怎麼辦?例如:從你的例子中測試 – Patrioticcow

+0

@Patrioticcow如果你知道你想訪問的密鑰,你可以檢查當前鍵:'if(objects =='testing'){...}'。如果你正在使用已知的鍵(它們總是相同的),那麼我建議擺脫內部的'for'循環,只需訪問像這樣的值:'$('#details')。append('testing ='+ json [object] .testing +'
test ='。json [object] .test);' – Jasper