我正在尝试将JSON数据插入Google Spreadsheet。这是我的代码,
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
var read=(function(){
data1={
"jobstatus": [
{
"dateAndTime": "hi",
"jobId": "TCC_tfc",
"userId": "admin",
"status": "Completed",
"jobType": "Excel Upload"
}
]
};
var jobs = data1;
var datae = new google.visualization.DataTable();
datae.addRows(["datetime",jobs.jobstatus.dateAndTime],
['jobId', jobs.jobstatus.jobId],
['userId', jobs.jobstatus.userId],
['status', jobs.jobstatus.status],
['jobType', jobs.jobstatus.jobType]
);});
</script>
在执行此代码时出现错误
TypeError:google.visualization未定义
我该如何解决该错误?我在“ SO”中搜索解决方案,他们说我要添加这一行:
google.load('visualization', '1.0', {'packages':['corechart'], 'callback': read});
通过添加这也将得到相同的错误。有人可以帮我这个忙吗?
最佳答案
这里有一些建议...
1)建议使用loader.js
与旧版库jsapi
<script src="https://www.gstatic.com/charts/loader.js"></script>
2)命名callback
函数,而不是分配给变量
google.charts.load('current', {
callback: read,
packages:['table']
});
function read(){...}
3)必须在
addRows
之前添加列,几种方法可以做到,使用arrayToDataTable
很容易var datae = google.visualization.arrayToDataTable([
['datetime', 'jobId', 'userId', 'status', 'jobType'],
]);
4)在
data1
中,"jobstatus"
是一个数组,因此必须使用数组元素索引来访问值jobs.jobstatus[0].dateAndTime // get first array element with [0]
- 要么 -
如果数组中有多个
jobstatus
,请使用addRow
使用循环将它们全部添加jobs.jobstatus.forEach(function (job) {
datae.addRow([
job.dateAndTime,
job.jobId,
job.userId,
job.status,
job.jobType
]);
});
请参阅以下工作片段...
google.charts.load('current', {
callback: read,
packages:['table']
});
function read(){
var data1={
"jobstatus": [{
"dateAndTime": "hi",
"jobId": "TCC_tfc",
"userId": "admin",
"status": "Completed",
"jobType": "Excel Upload"
}]
};
var jobs = data1;
var datae = google.visualization.arrayToDataTable([
['datetime', 'jobId', 'userId', 'status', 'jobType'],
]);
jobs.jobstatus.forEach(function (job) {
datae.addRow([
job.dateAndTime,
job.jobId,
job.userId,
job.status,
job.jobType
]);
});
var chart = new google.visualization.Table(document.getElementById('chart_div'));
chart.draw(datae);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
关于javascript - 将json数据插入Google SpreadSheet时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39074956/