出于测试目的,我有以下.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尽可能干净...
答案 0 :(得分:0)
您的数据以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);
})
答案 1 :(得分:0)
您的 API 返回字符串而不是 JSON 对象,
您可以简单地通过 alert(data) 确认其 JSON 是否会提醒“[object object]
”,然后您可以通过 data.result 或 data["result"] 读取它
但是如果它的警报纯字符串像 {"success":true,"message":"" ...}
那么你必须先把它解析成 JSON 对象然后你可以像 JSON.parse(data).result