我花了好几个小时与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 2format 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'] ])
}

09-25 17:19
查看更多