我希望使用从服务器端以JSON格式传来的数据来使用jqPlot,就像这个例子中所描述的那样:http://www.jqplot.com/tests/data-renderers.php
我的代码与示例几乎相同:
在服务器端,我使用的是PHP(和Yii框架)。网页返回一个数组,通过使用
客户端的 Ajax 请求解决了类似以下内容的问题(来自
function myGraph(jsonurl) {
var ajaxDataRenderer = function(url, plot, options) {
var ret = null;
$.ajax({
// have to use synchronous here, else the function
// will return before the data is fetched
async: false,
url: url,
dataType:"json",
success: function(data) {
ret=data;
console.warn(data);
}
});
return ret;
};
var plot1 = $.jqplot('chartdiv', jsonurl, {
title: 'myTitle',
dataRenderer: ajaxDataRenderer,
dataRendererOptions: { unusedOptionalUrl: jsonurl },
series: [{
label: 'myLabel',
neighborThreshold: -1
}],
axes: {
xaxis: {
renderer: $.jqplot.DateAxisRenderer,
// min:'August 1, 2010 16:00:00',
tickInterval: '2 months',
tickOptions:{formatString:'%Y-%m-%d.%H:%M:%S'}
},
yaxis: {
tickOptions:{formatString:'$%.2f'}
}
},
});
在服务器端,我使用的是PHP(和Yii框架)。网页返回一个数组,通过使用
CJSON::encode($resultArray);
将其编码为JSON格式(这是Yii函数传递给PHP JSON编码函数)。
PHP脚本的结果如下所示:{"2011-04-25 14:46:40":2,"2011-04-26 14:46:40":3,"2011-04-27 14:46:40":5}
客户端的 Ajax 请求解决了类似以下内容的问题(来自
console.info();
输出)。Object { 2011-04-25 14:46:40=2, 2011-04-26 14:46:40=3, ...}
很可能,jqPlot期望以下格式:
[[["2011-04-25 14:46:40":0],["2011-04-26 14:46:40",3],["2011-04-27 14:46:40",0]]]
我经常遇到错误信息:uncaught exception: [object Object]
,这是怎么回事呢?有没有办法将该对象转换成典型的数组形式?
谢谢!