0

我正在使用 Google 图表 API 编写图表工具。为了更改构成图表的数据的时间跨度,我将一个 jquery 帖子发送到一个 jsp servlet,该 servlet 返回一个看起来类似于

Swedish#68#Pasta#4#Vegetarian#2#Seafood#2#Salad#1

它存储在字符串数据中,然后拆分为一个二维数组,我用它来创建图表行。

                data.trim();
                var dataArray = data.split("#");  
                var catChartArray = new Array((dataArray.length/2));
                for (var i = 0; i < dataArray.length/2;i++)
                    {catChartArray[i]=new Array(1);}    
                var j =0;
                for (var i = 0; i<dataArray.length/2; i++){
                    catChartArray[i][0]= dataArray[j];
                    catChartArray[i][1]= dataArray[parseInt(j+1)];
                    j+=2;
                }

然后我使用 addRows(catChartArray) 方法将它传递给 google.visualization.DataTable() 的一个实例。此时图表不会绘制,我不明白为什么。它在构建时就使用了这种类型,然后它工作正常。我对使用 Javascript 非常缺乏经验,所以我可能忽略了一些非常明显的东西。阵列的打印输出没有什么特别之处:

Swedish,68,Pasta,4,Vegetarian,2,Seafood,2,Salad,1
4

2 回答 2

0

知道了!有两件事造成了系统中的错误。

这当然不会产生错误:

catChartArray[i][1]= dataArray[parseInt(j+1)];

但应该是

catChartArray[i][1]= parseInt(dataArray[j+1]);

servlet 还返回了许多必须破坏数组的空行。添加

 <%@page trimDirectiveWhitespaces="true"%>

到我用于发布请求的 jsp 文件。

现在一切都按预期工作。

于 2013-01-05T19:19:01.073 回答
0

您处理的数据如下所示:

[["Swedish", "68"], ["Pasta", "4"], ["Vegetarian", "2"],...

不应该是这样的:

["Swedish", "Pasta", "Vegetarian"...
["68", "4", "2"...
于 2013-01-05T17:37:59.233 回答