【问题标题】:How to get the open and close from this JSON request如何从此 JSON 请求中获取打开和关闭
【发布时间】:2018-09-07 11:00:41
【问题描述】:

有一个名为 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"
    },

它一直持续到最后。

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

【问题讨论】:

  • 您希望阵列是什么样的?到目前为止,您尝试过什么?
  • 它是一个 GIANT 对象,而不是数组,这样对待它;) 你需要什么值,为什么要把它变成一个数组。您可以比数组更好地使用对象,只是不能使用相同的功能。
  • 这是一个 php 问题吗?
  • @laruiss 我基本上只是想获得开盘价和收盘价,以便以后使用。
  • @YvesLeBorg 我不介意使用 php 或 javascript

标签: javascript php jquery json alpha-vantage


【解决方案1】:

你可以使用下面的代码

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

【讨论】:

    【解决方案2】:

    试试下面的代码

    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);
    }
    

    Click here to see JsFiddle Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      相关资源
      最近更新 更多