Как мне l oop JSON ответ, чтобы получить конкретные c данные в Javascript или ГАЗ - PullRequest
2 голосов
/ 21 января 2020

У меня есть JSON ответ от внешнего API. Проблема в том, что я знаю только, как регистрировать ответ, но не манипулировать им. В этом случае мне нужно получить некоторую информацию из ответа и l oop через весь ответ, чтобы показать список всех пользователей. Вот мой код до сих пор. Это не очень хорошо, но это то, что я мог сделать с моими минимальными навыками javascript.

 };

var response= UrlFetchApp.fetch(url, options)
var call= JSON.parse(response.getContentText());
var people=call.data;
  var user= {}

    user.ID = call.data[1].id;
    user.Email = call.data[1].email;
    user.Name= call.data[1].display_name;

Logger.log(user)

} 

Пример ответа:

"data": [
    {
        "id":00126,
        "first_name": "Test",
        "last_name": "Test",
        "archived": false,
        "display_name": "Test Test",
        "email": "test@test.com",
        "termination_date": null,
        "mobile_phone": null,
        "office_phone": null,
        "deleted_at": null,
        "deleted": false,

    },

"data": [
    {
        "id":00126,
        "first_name": "Test",
        "last_name": "Test",
        "archived": false,
        "display_name": "Test Test",
        "email": "test@test.com",
        "termination_date": null,
        "mobile_phone": null,
        "office_phone": null,
        "deleted_at": null,
        "deleted": false,

    },

1 Ответ

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

Вы можете использовать Array.prototype.map для перебора данных и возврата необходимой информации только от объекта

let data =  [
	{
		"id": 00126,
		"first_name": "Test",
		"last_name": "Test",
		"archived": false,
		"display_name": "Test Test",
		"email": "test@test.com",
		"termination_date": null,
		"mobile_phone": null,
		"office_phone": null,
		"deleted_at": null,
		"deleted": false,

	}]

	let res = data.map(({id, email, display_name}) => ({ID: id, Email: email, Name: display_name}));
	console.log(res)

Если ES6 не поддерживается

var res = data.map(function(userData) {
        return {ID: userData.id, Email: userData.email, Name: userData.display_name}
    });
...