Формат JSON для столбца в столбце Google

У меня есть данные, как показано ниже:

store 1 Store 2 store_id walk-ins walk-ins morning 20 25 noon 35 40 night 50 55 

Существует 20 магазинов, в которые записываются значения каждой строки.

В документах Google Charts мне сообщается, что массив данных выглядит следующим образом:

 var data = google.visualization.arrayToDataTable([ ['Stores', 'Store 1', 'Store 2', 'Store 3', 'Store 4', ... ], ['morning', 10, 24, 20, 32, 18, 5, ...], ['noon', 16, 22, 23, 30, 16, 9, ...], ['night', 28, 19, 29, 30, 12, 13, ...], ]); 

Я получаю данные через скрипт PHP скрипта / сервера MySQL. Каким должен быть JSON? json_encode($data) из запроса MySQL возвращает следующее:

[{"store_name": "Store 1", "Time": "Morning", "count": "17"}, …]

но диаграмма не загружается и дает мне сообщение « Table has no columns ».

Я загружаю JSON следующим образом:

 var url = '/url/updatedata.php?var=querytype'; jQuery.getJSON( url, function(Json) { // Create and populate the data table. var data = new google.visualization.DataTable(Json); .... 

Какова структура JSON для столбчатой ​​диаграммы столбцов?

Благодаря!

Оказалось, что сопоставление ваших данных оказалось довольно сложной задачей.

Например, у вас есть данные json:

 var json = [ {"store_name":"Store 1","Time":"Morning","count":"10"}, {"store_name":"Store 1","Time":"Noon","count":"16"}, {"store_name":"Store 1","Time":"Night","count":"28"}, {"store_name":"Store 2","Time":"Morning","count":"24"}, {"store_name":"Store 2","Time":"Noon","count":"22"}, {"store_name":"Store 2","Time":"Night","count":"19"} ]; 

Я использую underscore.js для следующего кода. Его можно включить следующим образом:

 <script type="text/javascript" src="http://underscorejs.org/underscore-min.js"></script> 

Код отображения:

 var header = _.chain(json).pluck("store_name").sort().uniq(true).value(); header.unshift("Stores"); var rows = _.chain(json) .groupBy(function(item) { return item.Time; }) .map(function(group, key) { var result = [key]; _.each(group, function(item) { result[_.indexOf(header, item.store_name)] = parseInt(item.count); }); return result; }) .value(); var jsonData = [header].concat(rows); // draw chart var data = google.visualization.arrayToDataTable(jsonData); chart.draw(data, options); 

jsonData переменная jsonData выглядит так:

 [["Stores", "Store 1", "Store 2"], ["Morning", 10, 24], ["Noon", 16, 22], ["Night", 28, 19]] 

Вот ссылка на jsFiddle с вашей диаграммой .

Я знаю, что это старый пост, но в случае, если кому-то это нужно, вот формат Jsondata для использования столбчатого столбца Google из кода сервера.

 { "cols": [ { "id": "", "label": "title", "pattern": "", "type": "string" }, { "id": "", "label": "A", "pattern": "", "type": "number" }, { "type": "string", "role": "annotation", "p": { "role": "annotation" } }, { "id": "", "label": "B", "pattern": "", "type": "number" }, { "type": "string", "role": "annotation", "p": { "role": "annotation" } }, { "id": "", "label": "C", "pattern": "", "type": "number" }, { "type": "string", "role": "annotation", "p": { "role": "annotation" } }, { "id": "", "label": "D", "pattern": "", "type": "number" }, { "type": "string", "role": "annotation", "p": { "role": "annotation" } } ], "rows": [ { "c": [ { "v": "Categories", "f": null }, { "v": "10", "f": null }, { "v": "10", "f": null }, { "v": "20", "f": null }, { "v": "20", "f": null }, { "v": "30", "f": null }, { "v": "30", "f": null }, { "v": "50", "f": null }, { "v": "50", "f": null } ] } ] }