Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Node.js从JSON中提取数据_Node.js_Json_Parsing - Fatal编程技术网

使用Node.js从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

我从一个食品配方api中提取数据,响应是JSON

{
    "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