Javascript 如何从这些JSON对象中筛选出值

Javascript 如何从这些JSON对象中筛选出值,javascript,node.js,json,Javascript,Node.js,Json,我正在使用一个返回JSON代码的在线API,我不知道如何过滤JSON代码中的“name”值。我尝试过滤的JSON存在于许多对象中,我尝试了许多不同的方法。如何从每个对象中获取“name”的值?我尝试过这样做。people.name,但我总是得到一个空白输出,或者它只会说“[object object][object object][object object][object object][object object][object object]” JSON响应: { "message":

我正在使用一个返回JSON代码的在线API,我不知道如何过滤JSON代码中的“name”值。我尝试过滤的JSON存在于许多对象中,我尝试了许多不同的方法。如何从每个对象中获取“name”的值?我尝试过这样做。people.name,但我总是得到一个空白输出,或者它只会说“[object object][object object][object object][object object][object object][object object]”

JSON响应:

{
  "message": "success",
  "number": 6,
  "people": [
    {
      "craft": "ISS",
      "name": "Oleg Kononenko"
    },
    {
      "craft": "ISS",
      "name": "David Saint-Jacques"
    },
    {
      "craft": "ISS",
      "name": "Anne McClain"
    },
    {
      "craft": "ISS",
      "name": "Alexey Ovchinin"
    },
    {
      "craft": "ISS",
      "name": "Nick Hague"
    },
    {
      "craft": "ISS",
      "name": "Christina Koch"
    }
  ]
}
NodeJS中的我的代码:

请求('http://api.open-notify.org/astros.json',(错误、响应、html)=>{
如果(!error&&response.statusCode==200)
{
让astroJSON=JSON.parse(html);
让astroNum=astroJSON.number;
让astroNames=JSON.stringify(astroJSON.people);//这就是我需要帮助的地方!
控制台日志(“编号:+astroNum”);
log(“船员姓名:+astroNames);//返回我在上面发送的JSON响应。
}
});

您必须映射到阵列上。看

e、 g

将记录一组人员姓名:

["Oleg Kononenko", "David Saint-Jacques", "Anne McClain", "Alexey Ovchinin", "Nick Hague", "Christina Koch"]
为了卸下支架和COMA,您可以使用

astroNames.join(' ')
返回字符串“Oleg Kononenko David Saint Jacques Anne McClain Alexey Ovchinin Nick Hague Christina Koch”

请参见尝试使用

const数据=`{
“消息”:“成功”,
“数字”:6,
“人”:[
{
“飞船”:“国际空间站”,
“名称”:“Oleg Kononenko”
},
{
“飞船”:“国际空间站”,
“姓名”:“大卫·圣雅克”
},
{
“飞船”:“国际空间站”,
“姓名”:“安妮·麦克莱恩”
},
{
“飞船”:“国际空间站”,
“姓名”:“Alexey Ovchinin”
},
{
“飞船”:“国际空间站”,
“姓名”:“尼克·黑格”
},
{
“飞船”:“国际空间站”,
“姓名”:“克里斯蒂娜·科赫”
}
]
}`;
const obj=JSON.parse(数据);
常量天体名称=天体编号;
//用逗号连接船员姓名
constcrew=obj.people.map(x=>x.name).join(',');

控制台日志(机组)
是一个数组。所以
.people.name
不起作用。可以执行
JSON.stringify(astroJSON.people,null,2)
但是为什么要执行
JSON.stringify
,只输出它,不在前面添加字符串。@仅供参考,您没有使用JSON。您已经解析了JSON,结果是一个javascript对象。您不需要过滤JSON。你永远不会与JSON交互。您可以解析它或发送/存储它。没有更多或更少。此外,您不需要序列化您的人员集合。您只需将对象作为另一个参数传递到console.log即可
consile.log(“船员姓名:”,astroJSON.people)
非常感谢!但是,我现在如何删除输出中的“、和[],以便用户看起来更漂亮呢?再次感谢!
astroNames.join(' ')