我花了好几个小时与HighCharts战斗,以格式化输入到series
选项的数据。
最后,我看到了here链接解决了我的数据格式化和输入问题。
HighCharts饼图可以识别的数据格式类似于上面的链接所示的(format 1)
:
[["chrome",15],["firefox",20]]
我实际上希望从外部URL输入动态数据并设置数据格式,以便HighCharts可以识别它。我从URL获得的数据格式类似于
(format 2)
:[
{
"status": "Stopped \/ Idle",
"val": 17.469444444444,
}, {
"status": "Working",
"val": 0,
}, {
"status": "Headland Turning",
"val": 0,
}, {
"status": "Transport",
"val": 0.15333333333333,
}
]
已经是JSON格式。
我只想知道对我来说,为从
format 2
到format 1
的数据编写一个解析器是必要的吗?还是我错过了HighCharts可以识别JSON格式数据的东西,而我实际上不需要编写解析器?我是HighCharts的新手,所以如果我的某些问题描述没有意义,请随时指出。。谢谢!
编辑:谢谢所有回答我的问题的人!
最佳答案
当脚本需要特定格式的数据时,通常必须将数据映射为合适的格式。可以在服务器代码中或使用javascript进行修改
可以使用jQuery $.map
将对象或数组重新配置为另一个数组。
演示:http://jsfiddle.net/qpsSe/1
请注意,样本JSON中的结尾逗号需要删除以验证JSON
/* "json" is your response object, modify variable names to match */
var chartData=$.map( json, function( obj,i){
return [[ obj.status, obj.val]];
})
$.map API Docs
本机javascript中的替代方法
var chartData=[];
for( i=0; i<json.length; i++){
chartData.push( [ json[i]['status'], json[i]['val'] ])
}