Как сохранить JSON ответ API в разных javascript массивах - PullRequest
1 голос
/ 20 января 2020

Работа над ответом API, который получает пользовательские данные из системы 10K ft через API. Ответ выглядит следующим образом:

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

Я хочу сохранить эти данные в трех разных массивах для каждого ответа, чтобы позже использовать его для циклического просмотра идентификатора пользователя. Я не уверен, как go об этом. Ниже приведен код, над которым я работал до сих пор. Я буду признателен за любую помощь здесь. Спасибо

    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));

enter image description here

Ответы [ 2 ]

3 голосов
/ 20 января 2020

Из того, что я понимаю ... Может быть, вы ищете что-то подобное?

    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);
    }

PS Попробуйте использовать ключевое слово let вместо var.

1 голос
/ 20 января 2020

, если «data» содержит больше объектов, вам нужно l oop через массив данных и pu sh идентификаторы, 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));
...