Alphavantage API-符号未定义



我对API服务相对较新,并试图构建一个仪表板,从Alphavantage API获取数据。我试图通过创建一个列表并将索引传递给我的API调用来同时获得3个符号。我为每个符号显示一行。这一切都很好,但当我试图获得像MSFT/IBM这样的Symbol时,它会给我未定义的。我想把符号附加在每行的前面,这样用户就可以知道行中的符号率是多少。不确定我在这里做错了什么,也不知道是否有任何变通方法,我会很感激,但任何帮助都会很棒!

完整的工作示例在代码笔中:https://codepen.io/kenny-kk/pen/JjWyrwK

HTML

<button id="get_data" onclick="getData()" class="btn btn-primary" style="margin-left: 5%;">Get Data</button>

Javascript

symbol = ["IBM", "MSFT", "AAPL"];
function getting_data(){
// if(company !== null){

for (i = 0; i < symbol.length; i++) {
$.getJSON("https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol="+symbol[i]+"&outputsize=compact&interval=60min&apikey="+api)
.done(async function(data){
console.log(data)
if (data.Note) {
alert(data.Note);
return
}
const responceData = [];
var date = data["Time Series (60min)"]
console.log(date)
let a = 1;
// let b = 7;
for(var d in date){
// var r = d.split("-");
if(a-- > 0){
var value = date[d];
// dps.unshift({x: new Date(parseInt(r[0]), parseInt(r[1])-1, parseInt(r[2])), y: parseFloat(value["1. open"])});
// if(b-- > 0){
let c = [d, value["1. open"], value["2. high"], value["3. low"], value["4. close"], value["5. volume"]];
responceData.push({
date: d,
open: value["1. open"],
high: value["2. high"],
low: value["3. low"],
close: value["4. close"],
volume: value["5. volume"],
});
// }
}else{
break;
}
}

完成文档后,Alphavantage API允许您在Meta-Data中从其响应中使用Symbol。我不知道你为什么要用你创建的数组访问它。你只需要在内部访问它,就可以像一样进行循环

var symbolZ = data['Meta Data']['2. Symbol']

并在响应数据中推送此符号Z,如

responceData.push({
Symbol: symbolZ,
date: d,
open: value["1. open"],
high: value["2. high"],
low: value["3. low"],
close: value["4. close"],
volume: value["5. volume"],
});

最后,在td,内的表中填充此数据

html += '<td>' + data.Symbol + '</td>'

最新更新