I am currently working on converting JSON data into a suitable format for a Google Chart visualization:
var jsonData = {"Battery Voltage, (A)":
{"2017-11-11T00:00:00.000Z":12.3,
"2017-11-11T00:01:00.000Z":12.35,
"2017-11-11T00:02:00.000Z":12.6,
"2017-11-11T00:03:00.000Z":12.7,
"2017-11-11T00:04:00.000Z":12.8},
"Battery Current, (A)":
{"2017-11-11T00:00:00.000Z":1.3,
"2017-11-11T00:01:00.000Z":1.4,
"2017-11-11T00:02:00.000Z":1.5,
"2017-11-11T00:03:00.000Z":1.6,
"2017-11-11T00:04:00.000Z":1.7}};
Another way to retrieve the data is by using the following structure:
var jsonData_2 =
{"2017-11-16T00:00:00.000Z":
{"Charge Current, (A)":0.001373312,"Battery Voltage, (V)":12.9267109178}
,"2017-11-16T00:01:00.000Z":
{"Charge Current, (A)":0.001373312,"Battery Voltage, (V)":12.9267109178}
,"2017-11-16T00:02:00.000Z":
{"Charge Current, (A)":0.001373312,"Battery Voltage, (V)":12.9267109178}
,"2017-11-16T00:03:00.000Z":
{"Charge Current, (A)":0.001373312,"Battery Voltage, (V)":12.9267109178}
,"2017-11-16T00:04:00.000Z":
{"Charge Current, (A)":0.001373312,"Battery Voltage, (V)":12.9267109178}};
The objective is to transform this JSON data into the correct representation for a Google line chart:
[
['Datetime', 'Battery Current, (A)', 'Battery Voltage, (A)'],
['2017-11-11 01:00', 1.3, 12.3],
['2017-11-11 02:00', 1.4, 12.35],
['2017-11-11 03:00', 1.5, 12.6],
['2017-11-11 04:00', 1.6, 12.7]
]
To handle two columns in the conversion process, you can modify the code as shown below:
var chartData = [];
Object.keys(jsonData).forEach(function (column) {
var tempArr = ['Datetime', column];
Object.keys(jsonData[column]).forEach(function (dateValue) {
tempArr.push(new Date(dateValue));
tempArr.push(jsonData[column][dateValue]);
chartData.push(tempArr);
});
});