首页 > 解决方案 > json.parse 被赋予 undefined:1

问题描述

我正在学习 express.js,并且我的任务是让网络应用程序将加密货币兑换成法定货币,到目前为止一切都很好,但是当我对从 HTTP 请求获得的数据使用 json.parsa 时,我给了我一个错误是我从 HTTP 请求中获得的 Jason 数据

{
"ask": 9179.74,
"bid": 9174.32,
"last": 9176.57,
"high": 9223.61,
"low": 8781.94,
"volume": 50371.1269628,
"open": {
"hour": 9177.42,
"day": 8855.65,
"week": 9765.14,
"month": 7720.07,
"month_3": 8808.98,
"month_6": 7266.43,
"year": 8770.7
},
"averages": {
"day": 8943.05,
"week": 9089.32,
"month": 9105.24
},
"changes": {
"price": {
"hour": -0.85,
"day": 320.92,
"week": -588.57,
"month": 1456.5,
"month_3": 367.58,
"month_6": 1910.14,
"year": 405.87
},
"percent": {
"hour": -0.01,
"day": 3.62,
"week": -6.03,
"month": 18.87,
"month_3": 4.17,
"month_6": 26.29,
"year": 4.63
}
},
"volume_percent": 64.54,
"timestamp": 1590598912,
"display_timestamp": "2020-05-27 17:01:52",
"display_symbol": "BTC-USD"
}

这是我的代码

     app.post('/', function (req, res) {
    request('https://apiv2.bitcoinaverage.com/indices/global/ticker/BTCUSD',{

        'auth':{
           'user': 'sohailahmadpsh@gmail.com',
           'pass': 'YjY0MGEwYjg2MTJkNGQ3ZDkyY2JlMzZmNDllNTgxZjA'
        }
    },function (error, response, result) { 
        var data=JSON.parse(result);
        var price=data.last;  
        res.send(price);
    });


});

并且使用了我已经尝试过的东西console.log(typeof result),我给了我一个字符串,甚至知道那是一个字符串,我得到的错误是

 undefined:1
    SyntaxError: Unexpected token U in JSON at position 0
    at JSON.parse (<anonymous>)
    at Request._callback (D:\backend\Bitcoins-app\server.js:25:23)

标签: javascriptnode.jsexpress

解决方案


我相信你的 json 已经被解析了。尝试注释掉解析响应的行。


推荐阅读