2011-12-02 52 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