使用Node.js从JSON中提取数据
我从一个食品配方api中提取数据,响应是JSON使用Node.js从JSON中提取数据,node.js,json,parsing,Node.js,Json,Parsing,我从一个食品配方api中提取数据,响应是JSON { "results": [ { "id": 147605, "title": "Mac and Cheese", "image": "https://spoonacular.com/recipeImages/1
{
"results": [
{
"id": 147605,
"title": "Mac and Cheese",
"image": "https://spoonacular.com/recipeImages/147605-312x231.png",
"imageType": "png"
},
{
"id": 137592,
"title": "Mac and Cheese",
"image": "https://spoonacular.com/recipeImages/137592-312x231.png",
"imageType": "png"
},
{
"id": 760335,
"title": "Mac and Cheese",
"image": "https://spoonacular.com/recipeImages/760335-312x231.jpg",
"imageType": "jpg"
},
{
"id": 1047165,
"title": "Mac and Cheese",
"image": "https://spoonacular.com/recipeImages/1047165-312x231.jpg",
"imageType": "jpg"
}
],
"offset": 0,
"number": 4,
"totalResults": 1171
}
我想提取标题、id和图像。
我做到了:
我想把它们存储在变量中,并用它做其他事情,但现在我只想把它打印到终端上
我对所有日志都没有定义。
我不确定我是否应该做一些循环,或者类似的事情
当我这样做时,我还应该补充:
console.log(response.body.results) // outputs undefined
console.log(response.body) // outputs the JSON response
这一定意味着我访问结果数组的方式不正确
谢谢你的帮助 打电话时:
response.body.results[“id”]
你是说,results
是一个对象,而它不是一个对象,而是一个对象数组。这就是说,如果你想访问第一个对象,你必须像这样调用它
console.log(response.body.results[0].id);
如果你想得到所有这些,你可以把它们放在一个循环中
for(设i=0;i
编辑:
有一件事我没有看到,response.body.results
返回未定义的结果。正如@Carlo Corradini所说,JSON.parse(response.body)
可能会解决这个问题
例如:
让jsonData=JSON.parse(response.body);
console.log(jsonData.results[0].id);
希望这有帮助!如果这让人困惑,很抱歉。如果是这样的话,只需询问您的任何问题就可以尝试使用JSON.parse(response.body)解析response.body,并将结果分配给一个变量。现在您应该能够访问数据了。更多提示:请求已被弃用,请使用insteadSee@daskangeboi-answer
console.log(response.body.results) // outputs undefined
console.log(response.body) // outputs the JSON response