javascript - 编写 JSON 解析器以格式化饼图 (HighCharts) 的数据

标签 javascript jquery json parsing highcharts

为了格式化 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/

相关文章:

javascript - Greensock - 更改 TweenMax 过渡的速度

javascript - 如何在不捕获它的情况下在捕获组 "absorb"之前/之后制作空白?

javascript - JQuery 追加 html5

Java - 解析json对象(输入结束于...的字符0)

json - Coldfusion - 接收发布的 JSON 数据并解析它

javascript - 为什么在我的网站上多次加载样式表?

javascript - 想要使用 HTML5 的 Polyfill 来使日期类型在 Firefox 中工作

jquery - 如何访问使用 css3 列创建的单列?

javascript - 复选框值显示错误

php - 从远程服务器解析 JSON 数据