簡體   English   中英

來自 Node.js 的 API 調用不返回數組

[英]API call from Node.js not returning array

出於測試目的,我有以下 .js:

    var request = require('request');
request('https://bittrex.com/api/v1.1/public/getticker?market=BTC-LTC', function (error, body, data) {
    console.log (data);
})

這給了我以下回復:

{"success":true,"message":"","result":{"Bid":0.01697926,"Ask":0.01698700,"Last":0.01698700}}

這是我需要的數據。

但是當我嘗試訪問數組的一部分時,它不起作用:

    var request = require('request');
request('https://bittrex.com/api/v1.1/public/getticker?market=BTC-LTC', function (error, body, data) {
    console.log (data.result);
})

給出回應:

undefined

有人可以完成這項工作嗎? 我懷疑答案不是數組,而是字符串。 (data.length 的答案是 92)

我不需要使用請求,我只想盡可能干凈地訪問 data.result.Ask...

您的數據將作為字符串格式的 JSON 返回。 要將其用作 Javascript 對象,您需要確保將其從字符串解析為 Javascript 對象。 您可以使用JSON.parse(data)手動執行此操作,或者如果您將json: true選項傳遞給request() ,則request()將自動為您解析 JSON 響應:

const request = require('request');

request({json: true, uri: 'https://bittrex.com/api/v1.1/public/getticker?market=BTC-LTC'}, function (error, body, data) {
    console.log(data.result);
})

您的 API 返回字符串而不是 JSON 對象,

您可以簡單地通過 alert(data) 確認它的 JSON 是否會提醒“ [object object] ”然后您可以通過 data.result 或 data["result"] 讀取它

但是如果它的警報純字符串像{"success":true,"message":"" ...}那么你必須首先將它解析為 JSON 對象然后你可以像JSON.parse(data).result

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM