[英]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.