I'm using the following code to create a JSON string from data extracted from a database:
//Build table
$table = array();
$table['cols'] = array(
array('label'=>'DateTime', 'type'=>'datetime'),
array('label'=>'Temperature','type'=>'number')
);
while($row=mysql_fetch_assoc($result)){
array_push($table,$row);
}
echo json_encode($table);
The 'validated' JSON output is:
{
"0": {
"datetime": "2015-08-21 16:32:00",
"temp": "19.062"
},
"1": {
"datetime": "2015-08-21 16:40:00",
"temp": "19.062"
},
"2": {
"datetime": "2015-08-21 16:47:00",
"temp": "19.062"
},
"3": {
"datetime": "2015-08-21 17:00:00",
"temp": "19.062"
},
"4": {
"datetime": "2015-08-21 18:00:00",
"temp": "19.062"
},
"5": {
"datetime": "2015-08-21 18:26:00",
"temp": "19"
},
"6": {
"datetime": "2015-08-21 19:00:00",
"temp": "19.062"
},
"7": {
"datetime": "2015-08-21 20:00:00",
"temp": "19"
},
"8": {
"datetime": "2015-08-21 21:00:00",
"temp": "19"
},
"9": {
"datetime": "2015-08-21 22:00:00",
"temp": "18.937"
},
"10": {
"datetime": "2015-08-21 23:00:00",
"temp": "18.875"
},
"11": {
"datetime": "2015-08-22 00:00:00",
"temp": "18.875"
},
"12": {
"datetime": "2015-08-22 01:00:00",
"temp": "18.812"
},
"13": {
"datetime": "2015-08-22 02:00:00",
"temp": "18.812"
},
"14": {
"datetime": "2015-08-22 03:00:00",
"temp": "18.75"
},
"15": {
"datetime": "2015-08-22 04:00:00",
"temp": "18.687"
},
"16": {
"datetime": "2015-08-22 05:00:00",
"temp": "18.687"
},
"17": {
"datetime": "2015-08-22 06:00:00",
"temp": "18.687"
},
"18": {
"datetime": "2015-08-22 07:00:00",
"temp": "18.625"
},
"19": {
"datetime": "2015-08-22 08:00:00",
"temp": "18.625"
},
"20": {
"datetime": "2015-08-22 09:00:00",
"temp": "18.625"
},
"21": {
"datetime": "2015-08-22 10:00:00",
"temp": "18.625"
},
"22": {
"datetime": "2015-08-22 11:00:00",
"temp": "18.625"
},
"23": {
"datetime": "2015-08-22 12:00:00",
"temp": "18.625"
},
"24": {
"datetime": "2015-08-22 13:00:00",
"temp": "18.625"
},
"25": {
"datetime": "2015-08-22 14:00:00",
"temp": "18.625"
},
"26": {
"datetime": "2015-08-22 15:00:00",
"temp": "18.625"
},
"27": {
"datetime": "2015-08-22 16:00:00",
"temp": "18.625"
},
"cols": [
{
"label": "DateTime",
"type": "datetime"
},
{
"label": "Temperature",
"type": "number"
}
]
}
When I try to plot this data in a Google Visualisation LineChart, the chart is empty. I'm using the following for the page on which the chart should be plotted:
function drawChart() {
var jsonData = $.ajax({
url: "data.php",
dataType:"json",
async: false
}).responseText;
// Create the data table.
var data = new google.visualization.DataTable(jsonData);
The page shows the chart but there is no data plotted.
A typical data structure for the Google Visualisation API would be:
{
"cols": [
{"id":"","label":"DateTime","pattern":"","type":"datetime"},
{"id":"","label":"Temperature","pattern":"","type":"number"}
],
"rows": [
{"c":[{"v":"2015-08-18 13:00:00","f":null},{"v":21,"f":null}]},-
{"c":[{"v":"2015-08-18 14:00:00","f":null},{"v":20,"f":null}]},
{"c":[{"v":"2015-08-18 15:00:00","f":null},{"v":20.2,"f":null}]},
{"c":[{"v":"2015-08-18 16:00:00","f":null},{"v":20.3,"f":null}]},
{"c":[{"v":"2015-08-18 17:00:00","f":null},{"v":20.5,"f":null}]}
]
}
This is my first time using these methods so I'm probably missing something really obvious. Any help would be appreciated though.