【问题标题】:How do I Save JSON API response in different javascript arrays如何在不同的 javascript 数组中保存 JSON API 响应
【发布时间】:2020-01-20 09:00:54
【问题描述】:

处理通过 API 从 10K 英尺系统获取用户数据的 API 响应。响应如下:

"data": [{
    "id": 30000,
    "display_name": "John Doe",
    "email": "Johndoes@testmail.com",
  },

我想将这些数据保存在三个不同的数组中,以供以后用于循环访问用户 ID 的每个响应。我不知道该怎么做。下面是我到目前为止工作的代码。我会很感激这里的任何帮助。谢谢

    function getUsers() {
      var auth = 'authentication'
      var url = 'https://api.10000ft.com/api/v1/users?' + '&auth=' + auth;
      var options = {
        method: 'get',
        headers: {
          Authorization: 'Bearer ' + auth
        }
      };

            };
           let response = UrlFetchApp.fetch(url, options);
           let json = JSON.parse(response);
               };
    var response = UrlFetchApp.fetch(url, options);
    var json = JSON.parse(response);
    var ids = [];
    var display_names = [];
    var emails = [];

    function result(data) {

    data.forEach(element => {
                 ids.push(element.id);
    display_names.push(element.display_name);
    emails.push(element.email);
  });

  return { "ids": ids, "display-names": display_names, "emails": emails };
}

console.log(result(data));

【问题讨论】:

    标签: javascript arrays api google-apps-script urlfetch


    【解决方案1】:

    据我了解...也许您正在寻找这样的东西?

        let json = JSON.parse(response);
        let ids = [];
        let dis_name = [];
        let email = [];
    
        for(let i = 0; i < json.length; i++){
            ids.push(json[i].id);
            dis_name.push(json[i].display_name);
            email.push(json[i].email);
        }
    
    

    P.S 考虑使用 let 关键字代替 var。

    【讨论】:

    • 嘿 Nicolas,感谢您查看我的代码。你是对的,并且正确地解释了我的问题。我已经使用您推荐的当前代码编辑了我的问题。我在谷歌应用脚​​本控制台中运行它,在按照你的建议使用 let 之后它会抛出一个错误 Missing ;声明之前。我会错过什么吗?
    • 是的,我在 for 循环的开头犯了一个错误。刚刚更新了我的代码。只需再次复制代码,一切都会好起来的。干杯。
    • 谢谢尼古拉斯。已复制代码,但仍然有相同的错误,它来自 var response = UrlFetchApp.fetch(url, options); 之前的行。但是,我将 let 更改为 var 并且执行成功。不知道为什么我可以用 let 运行它
    • 很高兴我能够帮助交配。祝你有美好的一天!
    【解决方案2】:

    如果“数据”包含更多对象,您需要遍历数据数组并将 ids、display_names 和电子邮件推送到单独的数组中。下面的示例将对您有所帮助。

    var data = [
        {
            "id": 30000,
            "display_name": "John Doe",
            "email": "Johndoes@testmail.com"
        },
        {
            "id": 30001,
            "display_name": "John Cena",
            "email": "JohnCens@testmail.com"
        },
        {
            "id": 30002,
            "display_name": "John kabaraya",
            "email": "Johnkabarayas@testmail.com"
        }
    ]
    
    var ids = [];
    var display_names = [];
    var emails = [];
    
    function result(data) {
    
        data.forEach(element => {
            ids.push(element.id);
            display_names.push(element.display_name);
            emails.push(element.email);
        });
    
        return { "ids": ids, "display-names": display_names, "emails": emails };
    }
    
    console.log(result(data));

    【讨论】:

    • 嘿,@Sachintha 感谢您查看我的代码。我已经修改了我的问题以纳入您的建议,但我遇到了语法错误。我已经包含了相同的屏幕截图。错误基本上在data.forEach(element => {请看一下并指教
    • 我在您的回复中引用“数据”。我建议您不要照原样复制给定的代码。您应该将响应传递给“结果”函数。
    猜你喜欢
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    相关资源
    最近更新 更多