在javascript中从json响应创建一个有效的google可视化数据数组
Create a valid google visualization data array from a json response in javascript
我有以下JSON响应
[
{line:"BAH", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"DOM", data:{Mar:43.5, Apr:90, May:120}, source:"TANZANIA RAILWAYS"},
{line:"GLW", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"KID", data:{Mar:43.5, Apr:90}, source:"TANZANIA RAILWAYS"},
{line:"KLO", data:{Mar:43.5, Apr:90, May:120}, source:"TANZANIA RAILWAYS"},
{line:"KUA", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"KZM", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"LAL", data:{Feb:31, Mar:59, May:120}, source:"TANZANIA RAILWAYS"},
{line:"MAN", data:{Mar:43.5, Apr:90, May:120}, source:"TANZANIA RAILWAYS"},
{line:"MID", data:{Feb:0}, source:"TANZANIA RAILWAYS"},
{line:"MIK", data:{Mar:0, Feb:31}, source:"TANZANIA RAILWAYS"},
{line:"MKA", data:{Apr:90}, source:"TANZANIA RAILWAYS"},
{line:"MOR", data:{Mar:59, Apr:90, May:120}, source:"TANZANIA RAILWAYS"},
{line:"MUP", data:{Mar:28}, source:"TANZANIA RAILWAYS"},
{line:"NGR", data:{Feb:31, Mar:59, May:120}, source:"TANZANIA RAILWAYS"},
{line:"NUR", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"RUV", data:{Feb:31, Mar:59, Jun:151}, source:"TANZANIA RAILWAYS"},
{line:"TBR", data:{Apr:90, May:120}, source:"TANZANIA RAILWAYS"},
{line:"URM", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"UVZ", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"WMI", data:{Jan:0}, source:"TANZANIA RAILWAYS"}
]
我想创建一个谷歌数据数组,可以显示在谷歌图表与以下格式
['MONTH',,'BAH','DOM','GLW','KID','KLO','KUA','KZM','LAL','MAN','MID','MIK','MKA','MOR','MUP','NGR','NUR','RUV','TBR','URM','UVZ','WM'],
['JAN', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
['FEB', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
['MAR', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
['APR', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
['MAY', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
['JUN', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
['JULY',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
['AUG', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
['SEP', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
['OCT', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
['NOV', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
['DEC', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
我希望将0替换为从JSON数据中读取的实际值。并形成一个有效的Google图表数组。谢谢你。
我找到了一个更好的解决方案。
series_results = [
{line:"BAH", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"DOM", data:{Mar:43.5, Apr:90, May:120}, source:"TANZANIA RAILWAYS"},
{line:"GLW", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"KID", data:{Mar:43.5, Apr:90}, source:"TANZANIA RAILWAYS"},
{line:"KLO", data:{Mar:43.5, Apr:90, May:120}, source:"TANZANIA RAILWAYS"},
{line:"KUA", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"KZM", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"LAL", data:{Feb:31, Mar:59, May:120}, source:"TANZANIA RAILWAYS"},
{line:"MAN", data:{Mar:43.5, Apr:90, May:120}, source:"TANZANIA RAILWAYS"},
{line:"MID", data:{Feb:0}, source:"TANZANIA RAILWAYS"},
{line:"MIK", data:{Mar:0, Feb:31}, source:"TANZANIA RAILWAYS"},
{line:"MKA", data:{Apr:90}, source:"TANZANIA RAILWAYS"},
{line:"MOR", data:{Mar:59, Apr:90, May:120}, source:"TANZANIA RAILWAYS"},
{line:"MUP", data:{Mar:28}, source:"TANZANIA RAILWAYS"},
{line:"NGR", data:{Feb:31, Mar:59, May:120}, source:"TANZANIA RAILWAYS"},
{line:"NUR", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"RUV", data:{Feb:31, Mar:59, Jun:151}, source:"TANZANIA RAILWAYS"},
{line:"TBR", data:{Apr:90, May:120}, source:"TANZANIA RAILWAYS"},
{line:"URM", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"UVZ", data:{May:120}, source:"TANZANIA RAILWAYS"},
{line:"WMI", data:{Jan:0}, source:"TANZANIA RAILWAYS"}
]
var data_series = JSON.parse(series_results) ;
// console.log('data_series '+data_series.data);
//
//alert(data_series.toSource());
var data_t = [] ;
var categ = [] ;
var categ_sorted = null ;
//
var graph_data = [] ;
var values = {} ;
var d = [] ;
var data_source = null ;
for(var item in data_series)
{
// alert(data_series[item].line) ;
values['name'] = data_series[item].line ;
//
data_source = data_series[item].source ;
// alert(item);
//
sdata=[];
// alert(data_series[item].line) ;
for(var i in data_series[item].data)
{
// alert(">>>>"+data_series[item].line+">>>>>>"+i+">>>"+data_series[item].data[i]);
//
sdata.push(data_series[item].data[i]) ;
//
categ.push(i);
//graph_data.push(values);
}
// alert(">>>> sdatae >>>> "+sdata);
values['data'] = sdata;
graph_data.push(values);
values={};
// alert(categ.toSource());
// alert(data_series[item].data) ;
// values['name'] = data_series.line ;
// values['data'] = [data_series.data[item]] ;
//
//alert(values.toSource()) ;
// graph_data.push(values);
// categ.push(item);
}
//alert(graph_data.toSource());
categ_sorted = sortMonths(categ) ;
// alert(categ_sorted.toSource()) ;
// alert(graph_data.toSource());
// alert(categ.toSource());
//dynamically build graphs
$('#container').highcharts({
title: {
text: ''+graph_results.graph_name,
x: -20 //center
},
subtitle: {
text: 'Data Source: '+data_source,
x: -20
},
xAxis: {
categories: categ_sorted
},
yAxis: {
title: {
text: ''+graph_results.name_y_axis
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
credits:
{
enabled: false
},
tooltip: {
valueSuffix: ''
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle',
borderWidth: 0
},
series: graph_data
});
相关文章:
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 当我的所有 Ng-from 都有效时启用一个按钮
- jQuery"焦点”;在一个实例中有效,但在其他实例中无效
- JSON.parse给了我一个错误,但JSONLint说它'是一个有效的json
- AngularJS分为多个文件-只有最后一个文件有效
- I'我在页面加载时将整个$_SESSION变量放入一个json对象中.虽然这对我有效,但这是一个好的做法吗
- 是什么让新的Date() / 1000成为一个有效的javascript
- JavaScript,数组和函数 - 只有数组的最后一个元素有效
- Javascript——为什么一个document.getElementById()有效,而另一个无效
- 获取字符串中最后一个换行符的最有效方法是什么
- 我如何创建一个Chrome应用程序,有效地充当信息亭模式下的启动页面
- 这是一个有效的JS代码吗
- 多个弹出窗口,但只有一个有效..为什么?
- Jquery - 相同的代码,但只有一个有效
- 使用一堆 setTimeouts 还是一个 setInterval 来刷新一堆对象更有效
- RxJS:如何在传递下一个有效值之前进行一些清理
- 一个Javascript回调模式示例 - 它真的更有效吗?
- 这是一个有效的 XPath 查询吗?
- 我该怎么做才能创建一个永远有效的 HTML 页面
- 所有有效的电子邮件是否至少包含一个@符号