【发布时间】:2009-06-05 22:01:20
【问题描述】:
我正在尝试使用现有的 JSON 对象并从中创建更小的 JSON 块,专门用于创建单独的图表。这是我使用 jQuery 的代码:
function updateStationGraphs (bsid) {
$.getJSON("includes/system/ajaxDataInterface.php", {format:'flot',target:bsid}, function(data) {
var graphOptions = {
series: {
lines: { show: true },
points: { show: true }
}
};
var handsetData = new Array(data[bsid].maxHandsets,data[bsid].avgHandsets);
$.plot($('.graphHandsets'),handsetData,graphOptions);
});
}
澄清:手机数据期待某种格式:
[ { label: "Foo", data: [ [10, 1], [17, -14], [30, 5] ] },
{ label: "Bar", data: [ [11, 13], [19, 11], [30, -7] ] } ]
我的问题是,例如,当调用 updateStationGraphs('A5A50000') 时,它报告 data[bsid] 未定义。我之前遇到过类似的问题,但我的问题是我再次重新声明了我的“数据”对象并且正在使用错误的对象。这似乎不是这里的情况,我无法弄清楚为什么它不允许我访问数据[bsid]。
假设数据如下所示:
var data = {"A5A50000":{"time":{"label":"time","data":[[1244045863,"2009-06-03 16:17:43"],[1244045803,"2009-06-03 16:16:43"],[1244045743,"2009-06-03 16:15:43"],[1244045683,"2009-06-03 16:14:43"],[1244045623,"2009-06-03 16:13:43"],[1244045563,"2009-06-03 16:12:43"],[1244045503,"2009-06-03 16:11:43"],[1244045443,"2009-06-03 16:10:43"],[1244045383,"2009-06-03 16:09:43"],[1244045323,"2009-06-03 16:08:43"]]},"avgHandsets":{"label":"avgHandsets","data":[[1244045863,204.7143],[1244045803,205.9444],[1244045743,205.3333],[1244045683,205.3889],[1244045623,204.5882],[1244045563,204.8235],[1244045503,205],[1244045443,205.9412],[1244045383,205.6667],[1244045323,204.1176]]},"maxHandsets":{"label":"maxHandsets","data":[[1244045863,314],[1244045803,314],[1244045743,315],[1244045683,315],[1244045623,315],[1244045563,314],[1244045503,314],[1244045443,316],[1244045383,316],[1244045323,312]]}}};
非常感谢您的建议。提前致谢。
【问题讨论】:
-
人力资源部。该符号应该有效。尝试在 data[bsid] 行上设置断点(使用 Firebug 或 Visual Studio)并观察数据对象。此外,您可以使用“[]”代替“new Array()”。
标签: javascript json