【问题标题】:NodeJS Undefined JSON objectNodeJS 未定义的 JSON 对象
【发布时间】:2018-06-07 14:30:29
【问题描述】:

只是发布一个问题,因为我在这里看到了一些其他类似的问题,但没有一个似乎适合我的方法。

我是 NodeJS 的新手,正在尝试从 API 请求数据。对于我在这里的测试,我只是试图根据用户提示的输入来拉取股票价格。

这很好用,但是对象

这是我用来尝试使其工作的代码:

 prompt.start();
 prompt.get(['coin'], function (err, result) {

   request({url: `https://min-api.cryptocompare.com/data/price?fsym=${result.coin}&tsyms=BTC,USD`, json:true}, function(err, res, json) {
     if (err) {
       throw err;
     }
     console.log(json);
     var json = JSON.stringify(json);
     var string2 = JSON.parse(json);
     console.log(string2.btc_price);
     console.log(json);
   });
   console.log('Retrieving: ' + result.coin);
 });

API 请求有效,但它返回的 JSON 与我的 3 个控制台日志类似:

    { set_attributes: { btc_price: 1, usd_price: 15839.35 } }
    undefined 
    {"set_attributes":{"btc_price":1,"usd_price":15839.35}}  --  (Stringify'd response)

我希望能够将 btc_price 和 usd_price 作为变量提取,我尝试了几种不同的方法,但无法弄清楚我到底哪里出错了。任何帮助将不胜感激!

干杯,

J

【问题讨论】:

标签: javascript json node.js object undefined


【解决方案1】:

当您尝试提取 btc_price 属性时,它实际上是嵌套的,因此您的第二个控制台应显示为 console.log(string2.set_attributes.btc_price);

【讨论】:

  • 我忽略了这样一个基本的事情,解决了这个问题,现在可以完美运行了。谢谢那个亚当!圣诞快乐
【解决方案2】:

axios 在 Github 上有更多的 star,在 Github 上有更多的关注者和更多的分叉。

Features

  • 从浏览器发出 XMLHttpRequests
  • 从 node.js 发出 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求和响应数据
  • 取消请求
  • JSON 数据的自动转换
  • 客户端支持防止 XSRF

使用异步/等待

  // Make a request for a user with a given ID
  var preload = null;
  async function getPrice(symbol) {
        preload = await axios.get('https://min-api.cryptocompare.com/data/price?fsym=${symbol}&tsyms=BTC,USD')
  .then(function (response) {
        preload = response.data;
  })
  .catch(function (error) {
        console.log(error);
  });
  return `preload.BTC = ${preload.BTC}; preload.BTC = ${preload.BTC}`;
  };
  getPrice('ETH');
  // return preload.BTC = 0.04689; preload.USD = 742.85

【讨论】:

    猜你喜欢
    • 2012-04-11
    • 2012-03-16
    • 1970-01-01
    • 2018-04-03
    • 2018-08-26
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多