访问API JSON响应值

时间:2018-03-13 06:17:51

标签: javascript node.js express nodes

我通过API获得了这个json对象。

var servers = {   
    'd22ab1': { 
        condition: 'autorebooted',
        name: 'acb1'
    },
    '6946e0': { 
        condition: 'online',
        name: 'abc2'
    }
}

for (var server in servers) {
    console.log(server.condition);
}

我正在尝试获取条件值,但我的for循环不能像我预期的那样工作。我错过了什么?谢谢!!!

3 个答案:

答案 0 :(得分:1)

您需要在迭代密钥时通过server密钥访问。

var servers = {   
    'd22ab1': { 
        condition: 'autorebooted',
        name: 'acb1'
    },
    '6946e0': { 
        condition: 'online',
        name: 'abc2'
    }
}

for (var server in servers) {
    console.log(servers[server].condition);
}

或者您可以使用Object.values,它返回每个属性的值。

var servers = {   
    'd22ab1': { 
        condition: 'autorebooted',
        name: 'acb1'
    },
    '6946e0': { 
        condition: 'online',
        name: 'abc2'
    }
}

Object.values(servers).forEach(item => console.log(item.condition));

答案 1 :(得分:0)

servers不可迭代,请使用Object.values

Object.values( servers ).forEach( s => console.log( s.condition ) )

<强>演示

var servers = {   
    'd22ab1': { 
        condition: 'autorebooted',
        name: 'acb1'
    },
    '6946e0': { 
        condition: 'online',
        name: 'abc2'
    }
};
Object.values( servers ).forEach( s => console.log( s.condition ) )

答案 2 :(得分:0)

在服务器上使用Object.keys获取所有密钥。然后迭代键并从每个键中获取条件。

var servers = {   
    'd22ab1': { 
        condition: 'autorebooted',
        name: 'acb1'
    },
    '6946e0': { 
        condition: 'online',
        name: 'abc2'
    }
}
let conditions = Object.keys(servers).map(key => servers[key].condition);

console.log(conditions)