1

有一个名为 Alpha Vantage 的 API 可以获取实时股票数据。通过发出请求,它会返回 JSON。这与我所看到的一切都不同,因为它不在数组中。我无法理解它。我正在使用 JQuery 和 Javascript,并希望将这些值存储在一个数组中,以便以后可以读取它们。

这是 JSON 的格式。(完整的 JSON) https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=1min&apikey=demo

这是该数据的示例:

{
"Meta Data": {
    "1. Information": "Intraday (1min) prices and volumes",
    "2. Symbol": "MSFT",
    "3. Last Refreshed": "2017-10-06 16:00:00",
    "4. Interval": "1min",
    "5. Output Size": "Compact",
    "6. Time Zone": "US/Eastern"
},
"Time Series (1min)": {
    "2017-10-06 16:00:00": {
        "1. open": "75.9700",
        "2. high": "76.0000",
        "3. low": "75.9500",
        "4. close": "76.0000",
        "5. volume": "2277972"
    },
    "2017-10-06 15:59:00": {
        "1. open": "75.9700",
        "2. high": "75.9700",
        "3. low": "75.9500",
        "4. close": "75.9650",
        "5. volume": "142469"
    },
    "2017-10-06 15:58:00": {
        "1. open": "75.9700",
        "2. high": "75.9900",
        "3. low": "75.9500",
        "4. close": "75.9600",
        "5. volume": "141434"
    },

它一直持续到最后。

感谢任何帮助将这些数据放入数组中,因为我被困在我的项目的这一部分。

4

2 回答 2

0

您可以使用以下代码

function traverse(jsonObj) {
if( typeof jsonObj == "object" ) {
    for (var prop in jsonObj){
        // k is either an array index or object key
        console.log(jsonObj[prop]);
        traverse(prop);
    }
}
else {
    // jsonOb is a number or string
}

}
traverse(data["Time Series (1min)"]);

fgfg

于 2017-10-09T11:29:45.927 回答
0

试试下面的代码

JS代码

storeToarray();
function storeToarray(){
  let ItemArray = [];
  if(Object.keys(data).length > 1){
  var keus = Object.keys(data)[1];
    for(var i = 0; i < Object.keys(data[keus]).length; i++){
      var keusVal = Object.keys(data[keus])[i];
      var open = Object.keys(data[keus][keusVal])[0];
      var close = Object.keys(data[keus][keusVal])[1];
      var low = Object.keys(data[keus][keusVal])[2];
      var volume = Object.keys(data[keus][keusVal])[3];
      var high = Object.keys(data[keus][keusVal])[4];

     ItemArray.push({"open":data[keus][keusVal][open],"high" :data[keus][keusVal][high] ,"low" : data[keus][keusVal][low],"close":data[keus][keusVal][close],"volume":data[keus][keusVal][volume]})
    }
  }
  console.log(ItemArray);
}

点击这里查看 JsFiddle 演示

于 2017-10-09T11:51:53.533 回答