我尝试使用通过AJAX调用返回的JSON数组。我想把这些数据放在JQPlot中来绘制它。当我使用硬编码的虚拟数据时,我的图表绘制得很好。虚拟数据如下所示:
var s1 = [200, 600, 700, 1000];
var s2 = [460, -210, 690, 820];
var s3 = [-260, -440, 320, 200];
var ticks = ['May', 'June', 'July', 'August'];
我尝试使用自己的数据来自ajax调用' garray'看起来像这样:
var obj = JSON.stringify(garray);
alert(obj);
/*this displays the following:
{"date":[["2015-05-29","2015-05-12","2015-04-30","2015-03-30","2015-02-27","2015-02-26"]],"close":[[0,3,1,1,0,0]],"high":[[1,3,2,1,0,1]],"low":[[0,-1,0,-1,-1,-1]]} */
obj = JSON.parse(obj);
s1 = obj["date"];
alert(s1);
//the alert above displays: 2015-05-29,2015-05-12,2015-04-30,2015-03-30,2015-02-27,2015-02-26
问题是这个分离被解释为JQPlot中的一个变量,而不是单独的日期。与其他字符串完全相同,所以我怀疑我没有正确处理它们?我需要使用不同的方法吗?
答案 0 :(得分:1)
您拥有的每个字段(date
,close
等)实际上是一个数组数组(注意开头的双[[
和]]
结束 - 一个数组只需要其中一个)。我的猜测是,您使用的API可以返回多组数据,而您只需要一个。
所以,你应该使用obj["date"][0]
(和其他人一样)
答案 1 :(得分:0)
s1 = obj["date"]; // is an array of dates
for( var i = 0; i < s1.length; i++ ){
console.log(s1[i]) // logs each date in the array
}