为了格式化 series
选项的数据输入,我与 HighCharts 进行了相当长的斗争。
终于看到链接here解决了我的数据格式化和输入问题。
HighCharts 饼图可识别的数据格式如下(format 1)
,如上面的链接所示:
[["chrome",15],["firefox",20]]
我实际上想要从外部 URL 输入动态数据并格式化数据,以便 HighCharts 可以识别它。我从URL得到的数据格式是这样的(格式2)
:
[
{
"status": "Stopped \/ Idle",
"val": 17.469444444444,
}, {
"status": "Working",
"val": 0,
}, {
"status": "Headland Turning",
"val": 0,
}, {
"status": "Transport",
"val": 0.15333333333333,
}
]
它已经是 JSON 格式。
我只是想知道我是否有必要为从格式2
到格式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
native JavaScript 中的替代方法
var chartData=[];
for( i=0; i<json.length; i++){
chartData.push( [ json[i]['status'], json[i]['val'] ])
}
关于javascript - 编写 JSON 解析器以格式化饼图 (HighCharts) 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11252424/