我正在尝试将 JSON 数据插入 Google 电子表格中。这是我的代码,
<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 is undefined
我该如何解决该错误?我在“SO”中搜索了解决方案,他们让我添加这一行:
google.load('可视化', '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/