Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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
Javascript ForIn循环工作,但返回不工作';没有道理_Javascript_Api_Ecmascript 6_Request_For In Loop - Fatal编程技术网

Javascript ForIn循环工作,但返回不工作';没有道理

Javascript ForIn循环工作,但返回不工作';没有道理,javascript,api,ecmascript-6,request,for-in-loop,Javascript,Api,Ecmascript 6,Request,For In Loop,我只想console.log从api调用返回的json的两个属性。我从未使用过请求库。当我试图通过身体循环时,它只返回字符串,我可以看到行车厢。使用axios,我拨打了电话,并毫无问题地通过它进行了循环 我尝试使用for、forin和object条目。我不理解输出 const request = require("request"); async function GetPosts() { await request("https://jsonplaceholder.typicode.

我只想console.log从api调用返回的json的两个属性。我从未使用过请求库。当我试图通过身体循环时,它只返回字符串,我可以看到行车厢。使用axios,我拨打了电话,并毫无问题地通过它进行了循环

我尝试使用for、forin和object条目。我不理解输出

const request = require("request");

async function GetPosts() {
    await request("https://jsonplaceholder.typicode.com/posts", function (error, response, body) {
        for (const key in body) {
            if (body.hasOwnProperty(key)) {
                const element = body[key];
                console.log(element);
            }
        }
    });
}
GetPosts();

我只想打印json结果中的标题和正文属性。

您需要调用
json.parse()
将响应正文解析为对象

然后,当您循环数组的元素时,您应该只打印所需的属性,而不是整个对象

const request = require("request");

async function GetPosts() {
    await request("https://jsonplaceholder.typicode.com/posts", function (error, response, body) {
        body = JSON.parse(body);
        body.forEach(item => {
            console.log(item.title, item.body);
        });
    });
}
GetPosts();

我没有意识到我必须解析它。我以为图书馆会替我保管的。我习惯使用axios。顺便说一下,当我运行代码时,它会给出两个相邻的未定义的。当我这样运行它时,它实际上会记录它。如果你在上面的片段中建议它可以工作,我做错什么了吗?我非常想使用更简单的语法,我这里的语法是有效的,我只是想知道为什么它返回未定义的,如果我可以使用更短的语法,在它解析后,它实际上将它转换为一个对象数组,在那里我可以使用for-in循环。现在一切都有了意义。我没意识到这是一个对象数组,我已经更新了答案。