【问题标题】:How to loop through JSON response in Javascript to get specific data如何在 Javascript 中循环 JSON 响应以获取特定数据
【发布时间】:2020-01-20 18:24:38
【问题描述】:

我正在学习如何使用 Javascript 发出 API 请求。

我发出了 GET 请求并获得了以下数据,我想遍历它们以仅获取 iddisplay_nameemail。这将存储在数组中。如何完成 javascript 代码?

"data": [
        {
            "id": 222226,
            "display_name": "jane Doe",
            "email": "janeDoe@testmail.com",
        },
        {
            "id": 1111226,
            "display_name": "james",
            "email": "james@testmail.com",
        },
    {
            "id": 11126,
            "display_name": "Travis Mc",
            "email": "travis@testmail.com",
         },

这是我的 javascript 代码。

var options = {
        method: 'get',
        headers: {
            Authorization: 'Bearer ' + auth
        }
    };
    var response= UrlFetchApp.fetch(url, options);
    var data = JSON.parse(response.getContentText());

我不确定我在做这个循环部分是否正确。

for (var i = 0; i < data.length; i++) {
    Logger.log(data[i].display_name);
}

【问题讨论】:

标签: javascript arrays json loops urlfetch


【解决方案1】:

我假设您使用的是Fetch Api。如果是这样,这意味着您正在创建一个 Promise。使用 Promise 时,您必须链接一个 then 函数来确定如何进行。 Promise.then((value)=&gt;{ /* do something */ }); 由于您使用的是 JSON 数据,因此您必须先对其进行解析,然后才能对 javascript 进行操作。如果您阅读 Fetch Api,它会解释它如何解决您的承诺并根据 HTTP 响应 返回 Response

这个例子是从 Devloper Mozilla Org 借来的 Check out the usage section of the Fetch API

fetch('http://example.com/movies.json')
  .then((response) => {
    return response.json();
  })
  .then((myJson) => {
    console.log(myJson);
  });

此示例说明了 fetch 函数如何解析 返回已解析响应的承诺,然后再次返回到另一个 then 函数,该函数现在将准备好已解析的数据操纵。

在你的情况下,代码看起来像这样

var options = {
    method: 'get',
    headers: {
        Authorization: 'Bearer ' + auth
    }
};

var response = UrlFetchApp.fetch(url, options)
.then((r)=>{ return r.json(); }).then((data)=>{
  for (let i = 0; i < data.length; i++) {
    Logger.log(data[i].display_name);
  }
});

【讨论】:

  • 嘿,@Cesar 谢谢你看这个。我已经尝试过您的代码,但出现语法错误。我已将屏幕截图附加到我编辑的问题中。请看第 15 行。
  • @levi 在语法上似乎没问题。我已经尝试在控制台上运行它并且工作正常。虽然我有一些问题。你在哪里声明 Object UrlFetchAppurl 变量。您可以尝试链接 then 函数的另一种方法如下:response.then((r)=&gt;{ return r.json(); }).then((data)=&gt;{ console.log(data); }); 。让我知道这是否有帮助。
猜你喜欢
  • 1970-01-01
  • 2016-01-25
  • 2021-03-10
  • 1970-01-01
  • 2018-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
相关资源
最近更新 更多