Вернуть указанную c переменную JSON тела в REQUEST nodejs - PullRequest
0 голосов
/ 27 января 2020

У меня есть этот код, который отлично работает для меня, он приносит мне тело в JSON, но я не хочу всего тела, я хочу конкретную c переменную этого же тела, это код.

var request = require("request");

var options = {
  method: 'GET',
  url: 'https://xxx',
  qs: {stats: 'true', events: 'true'},
  headers: {
    'x-rapidapi-host': 'xx',
    'x-rapidapi-key': 'xxx'
  }
};

request(options, function (error, response, body) {
	if (error) throw new Error(error);

	console.log(body);
    **console.log('HOME NOMBRE: ' + body.results.id);**
});

это дает мне JSON файл, подобный этому:

{"results":[{"id":1,
"idSeason":949,
"seasonName":"2020",
"idHome":2069,
"homeName":"MyHome",
"idAway":207 ....}

Я хотел бы иметь возможность реализовать какой-то метод, который приводит меня исключительно к переменной, например, homeName, чтобы иметь возможность работать только с ней!

Надеюсь, я хорошо объясню, жду вашей помощи!

Ответы [ 2 ]

0 голосов
/ 27 января 2020

Я думаю, что лучший способ сделать это - просто использовать карту ES6.

, если вы используете массив объектов

const results = [{
  "id": 1,
  "idSeason": 949,
  "seasonName": "2020",
  "idHome": 2069,
  "homeName": "MyHome",
  "idAway": 207
}, {
  "id": 2,
  "idSeason": "x",
  "seasonName": "x",
  "idHome": "x",
  "homeName": "MyHomex",
  "idAway": "x"
}]

const formattedRes = results.map(singleObject =>{
// Here redeclare the object you want, here i want to return id,seasonName and homeName
  return {
       "id": singleObject.id,
       "seasonName": singleObject.seasonName,
       "homeName": singleObject.seasonName,
        }
});
console.log(formattedRes);

результат будет

[ { id: 1, seasonName: '2020', homeName: '2020' },
  { id: 2, seasonName: 'x', homeName: 'x' } ]

для подробнее карта - MDN Do c

0 голосов
/ 27 января 2020

Если ваш API возвращает массив объектов, и вы просто хотите получить массив значений для одного из свойств объектов, используйте map ...

let results = [{
  "id": 1,
  "idSeason": 949,
  "seasonName": "2020",
  "idHome": 2069,
  "homeName": "MyHome",
  "idAway": 207
}, {
  "id": 2,
  "idSeason": 950,
  "seasonName": "2021",
  "idHome": 2070,
  "homeName": "MyHome2",
  "idAway": 208
}]

// native
console.log(results.map(e => e.homeName))

// or using underscore
console.log(_.pluck(results, 'homeName'))

// or a smaller object
console.log(results.map(e => _.pick(e, 'id', 'seasonName', 'idAway')))
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...