我想从MySQL数据创建一个google线图,它是json格式的。JSON数据采用以下格式:
{
"result": [
{
"Date": "Dec 17,2017",
"start_time": "22,08,17",
"selected_time": "[00,00,00]"
},
{
"Date": "Dec 18,2017",
"start_time": "21,48,57",
"selected_time": "[00,00,00]"
},
{
"Date": "Dec 21,2017",
"start_time": "13,23,05",
"selected_time": "[00,00,00]"
},
{
"Date": "Dec 22,2017",
"start_time": "00,13,33",
"selected_time": "[00,00,00]"
},
{
"Date": "Dec 23,2017",
"start_time": "14,48,34",
"selected_time": "[00,00,00]"
},
{
"Date": "Dec 27,2017",
"start_time": "19,21,34",
"selected_time": "[00,00,00]"
}
]
}下面是我正在做的事情的代码。但是它不接受start_time和selected_time值作为不匹配的错误。对于mysql db中的所有这些字段,我都有varchar数据类型。
function callbackFuncWithData(json){
var data = new google.visualization.DataTable();
data.addColumn('string', 'Date');
data.addColumn('timeofday', 'start_time');
data.addColumn('timeofday', 'selected_time');
$.each(json, function (key, value) {
$.each(value, function (key, value) {
var temp = [];
temp = value;
alert([temp['Date']+" "+temp['start_time']+" "+temp['selected_time']]);
data.addRows([
[ temp['Date'],temp['start_time'],temp['selected_time']]
]);
});
});
var options = {
tooltip: {
isHtml: true
},
title: 'Trendlines with multiple lines',
hAxis: {
title: 'Date',
},
vAxis: {
title: 'Time'
},
pointSize: 5,
series: {
0: { pointShape: 'circle' },
}
};
var chart = new google.visualization.LineChart(document.getElementById('multipleTrendChart'));
chart.draw(data, options);
}
}).fail(function (jq, text, err) {
console.log(text + ' - ' + err);
});
}
</script>
</head>
<body>
<div id="multipleTrendChart"></div>
</body>
</html>但是它显示了这个错误“错误:类型不匹配。值22,08,17与列索引1中的时间类型不匹配”。有人请给我建议一下有什么问题吗?谢谢
发布于 2017-12-30 17:59:44
如果您更改了json的格式,它应该如下所示,
没有引号包围'timeofday'的数组
{
"Date": "Dec 17,2017",
"start_time": [22,08,17],
"selected_time": [00,00,00]
},否则,您可以使用以下方法转换为数组.
$.each(json, function (key, value) {
data.addRow([
value.Date,
value.start_time.split(','),
JSON.parse(value.selected_time)
]);
});https://stackoverflow.com/questions/48002895
复制相似问题