获取对象数组中键值的值

时间:2016-09-24 09:42:05

标签: javascript

我试图在对象数组中显示所有键值对的值。我尝试了多种方法,例如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的每个元素的值,但是如何?有什么想法吗?

3 个答案:

答案 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);
});