0

尝试通过 request-promise 发出请求,但无法正常工作。

请参阅下面的评论。

有人可以向我解释这个 PiA 吗?

提前致谢

var todayOptions = { uri: `http://mlb.mlb.com/gdcross/components/game/mlb/year_${year}/month_${month}/day_${day}/master_scoreboard.json`, 
                     simple: false, 
                     resolveWithFullResponse: true
};

rp(todayOptions)
  .then(function (response){
    console.log(response.body); //RETURNS BODY
    console.log(response.body.data); //RETURNS UNDEFINED EVEN THOUGH IT EXISTS
 })
  .catch(function(error){
    console.log(error);
  });
4

3 回答 3

4

您需要将json选项设置为 true:

var todayOptions = { uri: `http://mlb.mlb.com/gdcross/components/game/mlb/year_${year}/month_${month}/day_${day}/master_scoreboard.json`, 
                     simple: false, 
                     resolveWithFullResponse: true,
                     json: true
};
于 2017-04-26T16:05:58.630 回答
3

我的赌注是response.body一个字符串化的 JSON 对象。尝试解析它。request-promise 有时会返回一个字符串化的对象。

console.log(JSON.parse(response.body).data);

于 2017-04-26T15:49:14.847 回答
0

如果这仍然不适合您,因为它不适合我,请尝试将其添加到您的选项中:

编码:'utf8'

这为我解决了一切。您甚至不必弄乱 json.parse 或 json.stringify 复合。如果您的选项中已经有 json: true ,则响应已经是一个 json 对象。

于 2018-09-04T19:57:46.913 回答