Javascript 错误:第一行不是数组。谷歌饼图

Javascript 错误:第一行不是数组。谷歌饼图,javascript,c#,arrays,charts,google-visualization,Javascript,C#,Arrays,Charts,Google Visualization,我正在尝试使用谷歌饼图。我正在从API调用将数据输入图表。我正在使用ASP.NET页面进行这项工作。下面是第页的完整代码 "[{\"AuditStatusId\":2,\"Number\":5},{\"AuditStatusId\":3,\"Number\":1}, {\"AuditStatusId\":19,\"Number\":1},{\"AuditStatusId\":23,\"Number\":27}, {\"AuditStatusId\":24,\"Number\":2},{\"A

我正在尝试使用谷歌饼图。我正在从API调用将数据输入图表。我正在使用ASP.NET页面进行这项工作。下面是第页的完整代码

"[{\"AuditStatusId\":2,\"Number\":5},{\"AuditStatusId\":3,\"Number\":1}, 
{\"AuditStatusId\":19,\"Number\":1},{\"AuditStatusId\":23,\"Number\":27}, 
{\"AuditStatusId\":24,\"Number\":2},{\"AuditStatusId\":27,\"Number\":1}, 
{\"AuditStatusId\":31,\"Number\":1},{\"AuditStatusId\":38,\"Number\":1}]"
我的API正在返回上述数据

我正在每个循环中的下面代码中做一些工作,以将数据转换为数组。但这仍然不起作用

[['Task', 'Hours per Day'], ['2', 5], ['3', 1], ['19', 1], ['23', 27], ['24', 2], ['27', 1], ['31', 1], ['38', 1]]
上面的字符串是self格式化的,如果我把这个静态变量放在arrayToDataTable方法中,它会工作,但是如果我在方法中给出变量名,那么我会得到错误“错误:第一行不是数组。”


var data01=“[['任务','每天小时数']”;
load('current',{'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
函数绘图图(){
$.ajax({
键入:“GET”,
网址:'http://class.localtest.me/api/dashboard/chartdata',
数据类型:“json”,
async:false,
contentType:“应用程序/json;字符集=utf-8”,
数据:{},
成功:功能(结果){
$.each(JSON.parse(结果)、函数(数据、值){
data01=data01.concat(',[\''+value.AuditStatusId+'\','+value.Number+']);
})
data01=data01.concat(']');
},
错误:函数(xhr、状态、错误){
警报(错误);
}
});
//var data=new google.visualization.DataTable([[Task',Hours per Day'],[2',5','3',1','19',1','23',27','24',2','27',1','31',1','38',1]];
var arr=$.makeArray(data01);
控制台日志(arr);
var data=新的google.visualization.arrayToDataTable(arr);
变量选项={
标题:“我的评估”
};
var chart=new google.visualization.PieChart(document.getElementById('PieChart');
图表绘制(数据、选项);
}

看起来您正在尝试使用字符串构建数组,
只需使用实际数组

var data01 = [['Task', 'Hours per Day']];

$.each(result, function (data, value) {
    data01.push([value.AuditStatusId.toString(), value.Number]);
})
这就是你所需要的


请参阅以下工作片段…
(数据已在
fail
回调中硬编码,可以删除)

var data01=[['Task','Hours per Day']];
load('current',{'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
函数绘图图(){
$.ajax({
键入:“GET”,
网址:'http://class.localtest.me/api/dashboard/chartdata',
数据类型:“json”,
contentType:“应用程序/json;字符集=utf-8”,
数据:{}
}).完成(功能(结果){
加载数据(结果);
}).fail(函数(jqXHR、textStatus、errorshown){
var result=“[{\'AuditStatusId\'”:2,\'Number\':5},{\'AuditStatusId\':3,\'Number\':1},{\'AuditStatusId\':23,\'Number\':27},{\'AuditStatusId\':24,\'Number\':2},{\'AuditStatusId\':27,\'Number\'Number\':1},{'AuditStatusId\':31,\'Number\'AuditStatusId\':38};
loadData(JSON.parse(result));
});
函数加载数据(结果){
$。每个(结果、函数(数据、值){
data01.push([value.AuditStatusId.toString(),value.Number]);
})
var data=新的google.visualization.arrayToDataTable(data01);
变量选项={
标题:“我的评估”
};
var chart=new google.visualization.PieChart(document.getElementById('PieChart');
图表绘制(数据、选项);
}
}

如何使其异步?
var data01 = [['Task', 'Hours per Day']];

$.each(result, function (data, value) {
    data01.push([value.AuditStatusId.toString(), value.Number]);
})