0

也许你可以帮助我。

我的 jquery ajax 调用结果用“||”分割 它创建了一个值数组。这些值之一是这样的字符串:

[['2012-11-18', 33, 2], ['2012-11-19', 162, 11], ['2012-11-20', 140, 13]]

我需要把它作为一个可行的 javascript 数组传递给谷歌图表 drawchart(myarray) 函数来使用它与 data.addRows(myarray);

谁能帮我实现它?

我可以让这个 ajax 返回的数组看起来像任何东西,重要的是我可以使用这个数组来更新谷歌图表。

好的,这是我的ajax成功代码:

success: function(response)
     {
        response_d = response.split("||");
        response_message = response_d[0];

        if(response_message == 'ok') {
           $("#contr_count").html(response_d[1]); 
           $("#contr_average").html(contr_time(response_d[2])); 
           $("#contr_space_average").html(contr_time(response_d[3]));
           var chartdata = $.parseJSON(response_d[4]);
           drawChart(chartdata);
           $("#contr_list").html(response_d[5]); 
        }
        else {

        }
     }

这是绘图功能

function drawChart(chartdata) {
 var data = new google.visualization.DataTable();
  data.addColumn('string', 'Minutit tagasi');
  data.addColumn('number', 'T pikkus');
  data.addColumn('number', 'T vahe pikkus');

  data.addRows(chartdata);

data.addRows(dateArray);
 var options = {
   title:                 'T pikkuse ja vahe graafik (viimane 60 min)',
   backgroundColor:          '#fdf3e9', 
   colors:                ['#FF7F00','#437C17'],
   curveType:             'function',
   enableInteractivity:      true, 
   legend:                {position: 'bottom'},
   vAxis:                 {direction: -1},
   hAxis:                 {direction: -1},
   chartArea:             {width: '85%'}
 };

 var chart = new google.visualization.LineChart(document.getElementById('contr_graph'));
 chart.draw(data, options);

}

该代码给出了 json 错误 "SyntaxError: JSON.parse: unexpected character" ar firebug。

4

1 回答 1

0

您需要先替换'"。尝试:

var s = "[['2012-11-18', 33, 2], ['2012-11-19', 162, 11], ['2012-11-20', 140, 13]]";
var arr = $.parseJSON(s.replace(/'/g,'"'))

这是一个带有工作示例的 jsfiddle。打开 javascript 控制台以查看结果。

于 2013-01-03T08:49:38.503 回答