我试图在对象数组中显示所有键值对的值。我尝试了多种方法,例如http://jsfiddle.net/4Mrkp/,但我似乎无法使用它来处理我的数据。
数据,我想只显示汽车:
{
"response":{
"status":"200",
"messages":{},
"milliseconds":"2"
},
"input":{
"provinceid":{},
"supplierid":"12345678",
"statusid":{ }
},
"output":{
"count":"7",
"list":{
"make":[
{"name":"Alfa Romeo"},
{"name":"Audi"},
{"name":"BMW"},
{"name":"Chevrolet"},
{"name":"Chrysler"},
{"name":"Citroen"},
{"name":"Dacia"}
]
}}
}
到目前为止,我的代码显示了make
:
function display_makes(obj)
{
document.getElementById("temp-id").innerHTML =
Object.keys(obj.output.list.make).forEach(function(key){
document.write(key);});
}
下一步是获取make
的每个元素的值,但是如何?有什么想法吗?
答案 0 :(得分:0)
您可以使用underscoreJS来操作JSON。
var make = _.map(json_object.output.list.make,function(make) {
document.write(make.name);
return make;
})
此make变量将包含键值对中的值。
答案 1 :(得分:0)
比你想象的容易。只需遍历数组并忘记其余部分:
object.output.list.make.forEach(function(item){
document.write(item);
});
您正在使用数组,因此根本不需要Object.keys()
答案 2 :(得分:0)
不要在Object.keys
上使用obj.output.list.make
因为它是一个数组,请使用:
obj.output.list.make.forEach(function(obj) {
console.log(obj.name);
});