Javascript 如何在Node.js中使用迭代获得JSON值?

Javascript 如何在Node.js中使用迭代获得JSON值?,javascript,node.js,ecmascript-6,iteration,Javascript,Node.js,Ecmascript 6,Iteration,我有一个正在使用Node.js的项目,当我尝试遍历对象属性时遇到了问题。我是这种迭代的新手。我习惯于编写data.value来访问值,但我不能访问这样的值,我需要使用JavaScript中的迭代来访问值 我有这个JSON数据 var data = { "internal": { "services": { "core": "OK", "comments": "NOK", "id": "OK" } } } 我需要

我有一个正在使用
Node.js
的项目,当我尝试遍历对象属性时遇到了问题。我是这种迭代的新手。我习惯于编写
data.value
来访问值,但我不能访问这样的值,我需要使用JavaScript中的迭代来访问值

我有这个
JSON
数据

var data = {
  "internal": {
      "services": {
         "core": "OK",
         "comments": "NOK",
         "id": "OK"
     }
  }
}
我需要使用JavaScript迭代获得
OK
NOK

我试过这个

for (var key of Object.values(data)) {
     if (key === 'NOK') {
         axios.post(slackWebhookURL, {
             text: `Problems found in ${key}`
         })
     } else axios.post(slackWebhookURL, {
         text: 'Everything is working properly.'
     })
}
我试过使用
Object.keys()
Object.entries()
Object.getOwnPropertyName()
,但没有一个有效,没有一个返回
OK
NOK


非常感谢您提供的任何帮助。

请使用以下功能
条目

for (var [key, value] of Object.entries(data.internal.services)) {...}
var数据={
“内部”:{
“服务”:{
“核心”:“确定”,
“评论”:“NOK”,
“id”:“确定”
}
}
}
for(Object.entries(data.internal.services)的var[key,value]{
如果(值=='NOK'){
log(`Problems founds in'${key}``);
}否则{
log(`在'${key}'中一切都正常工作');
}

}
使用功能
条目
,如下所示:

for (var [key, value] of Object.entries(data.internal.services)) {...}
var数据={
“内部”:{
“服务”:{
“核心”:“确定”,
“评论”:“NOK”,
“id”:“确定”
}
}
}
for(Object.entries(data.internal.services)的var[key,value]{
如果(值=='NOK'){
log(`Problems founds in'${key}``);
}否则{
log(`在'${key}'中一切都正常工作');
}

}
您需要访问对象文本的正确属性。另外,只需使用
some()

var数据={
“内部”:{
“服务”:{
“核心”:“确定”,
“评论”:“NOK”,
“id”:“确定”
}
}
};
if(Object.values(data.internal.services).some(e=>e==='NOK')){
axios.post(slackWebhookURL{
text:`在${key}中发现问题`
});
}否则{
axios.post(slackWebhookURL{
文字:“一切正常。”
});

}
您需要访问对象文本的正确属性。另外,只需使用
some()

var数据={
“内部”:{
“服务”:{
“核心”:“确定”,
“评论”:“NOK”,
“id”:“确定”
}
}
};
if(Object.values(data.internal.services).some(e=>e==='NOK')){
axios.post(slackWebhookURL{
text:`在${key}中发现问题`
});
}否则{
axios.post(slackWebhookURL{
文字:“一切正常。”
});

}
您可以使用“点”语法访问内部属性

console.log('core: ' + data.internal.services.core);
console.log('comments: ' + data.internal.services.comments);
console.log('id: ' + data.internal.services.id);
要进行迭代,需要遍历包含要观察其值的属性的对象,在本例中为
data.internal.services

var数据={
“内部”:{
“服务”:{
“核心”:“确定”,
“评论”:“NOK”,
“id”:“确定”
}
}
}
for(data.internal.services中的var propName){
if(data.internal.services[propName]=='NOK'){
console.log(propName+':NOK')
}否则{
console.log(propName+':OK')
}

}
您可以使用“点”语法访问内部属性

console.log('core: ' + data.internal.services.core);
console.log('comments: ' + data.internal.services.comments);
console.log('id: ' + data.internal.services.id);
要进行迭代,需要遍历包含要观察其值的属性的对象,在本例中为
data.internal.services

var数据={
“内部”:{
“服务”:{
“核心”:“确定”,
“评论”:“NOK”,
“id”:“确定”
}
}
}
for(data.internal.services中的var propName){
if(data.internal.services[propName]=='NOK'){
console.log(propName+':NOK')
}否则{
console.log(propName+':OK')
}

}
您需要
Object.keys(data.internal.services)
如果您想迭代这组属性。我在下面看到了相同的答案,我将尝试这个。谢谢你的提示。你需要
Object.keys(data.internal.services)
如果你想迭代那组属性。我在下面看到了相同的答案,我会试试这个。谢谢你的提示。Aaa我想我现在明白了,我怎么这么瞎了?谢谢,我试试这个!Aaa我想我现在明白了,我怎么这么瞎了?谢谢,我试试这个!我相信它是有效的,因为你有很高的声誉,我检查了你的个人资料,发现你在JavaScript中得分最高,所以我会投票给你的答案。我相信它是有效的,因为你有很高的声誉,我检查了你的个人资料,发现你在JavaScript中得分最高,因此,我将投票支持你的答案。答案的第一部分是不必要的,但我确实相信答案的另一部分是正确的。答案的第一部分是不必要的,但我确实相信答案的另一部分是正确的。