Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析JSON并加载到数组中_Javascript_Jquery_Arrays_Json_Stocks - Fatal编程技术网

Javascript 解析JSON并加载到数组中

Javascript 解析JSON并加载到数组中,javascript,jquery,arrays,json,stocks,Javascript,Jquery,Arrays,Json,Stocks,JSON- 我试图从上面的链接中获取JSON,并将其置于以下格式(日期、打开、高、低、关闭) 日期不需要是纪元时间 我的代码 $.getJSON('https://www.alphavantage.co/query? function=TIME_SERIES_DAILY&symbol=MSFT&apikey=demo', function(data) { //Get the time series data var timeseries = data['Time Series (

JSON-

我试图从上面的链接中获取JSON,并将其置于以下格式(日期、打开、高、低、关闭)

日期不需要是纪元时间

我的代码

$.getJSON('https://www.alphavantage.co/query?
function=TIME_SERIES_DAILY&symbol=MSFT&apikey=demo', function(data) {
//Get the time series data
var timeseries = data['Time Series (Daily)']
var ohlcarray = [];
//Loop through each time series and convert it to JSON format
  $.each(timeseries, function(key, value) {
        var ohlcdata=[];
        ohlcdata[0]=value[0];//date
        ohlcdata[1]=value[1];//open
        ohlcdata[2]=value[2];//high
        ohlcdata[3]=value[3];//low
        ohlcdata[4]=value[4];//low
        ohlcarray.push(ohlcdata);
  });
console.log(ohlcarray[0]);//test if worked properly
});
输出

[undefined, undefined, undefined, undefined, undefined]
值[x]返回未定义的值。你知道为什么会这样吗


谢谢

此时它已经是JSON了。正如Patrick提到的,getJSON自动解析json。由于属性名中有空格,因此需要使用数组括号表示法访问它

var timeSeries = data['Time Series (Daily)'];

参见示例:

原因是在
每个
循环中,
不是一个列表,而是一个对象。要访问它,你必须用钥匙抓住它

ohlcdata[0] = key; //date
ohlcdata[1] = value['1. open']; //open
ohlcdata[2] = value['2. high']; //high
ohlcdata[3] = value['3. low']; //low
ohlcdata[4] = value['4. close']; //low

尝试
data=JSON.parse(数据)
当您在回调中接收到它时,
不是一个数组,它是另一个具有类似
1键的对象。打开
2。高
。因此,可以像
value['1.open']
@EvgenyKolyakov那样访问它,自动解析JSON,执行
JSON。对
数据进行解析将导致错误,因为它已经是一个object@PatrickEvans您是正确的,值['1.open']可以完美地工作。谢谢你的帮助<代码>键
将是您的日期如果我看到嵌套属性的问题,我将更新示例。
ohlcdata[0] = key; //date
ohlcdata[1] = value['1. open']; //open
ohlcdata[2] = value['2. high']; //high
ohlcdata[3] = value['3. low']; //low
ohlcdata[4] = value['4. close']; //low