写JSON解析器用于饼图格式数据(HighCharts)(Write JSON parser to

2019-07-30 04:03发布

我与HighCharts战斗相当长的一段时间的数据输入格式的series选项。 最后,我看到的链接在这里解决了我的问题,数据格式和输入。

将由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可以随意指出这一点,如果我的一些问题描述并不能使你sense..Thank!

编辑 :感谢所有球员回答我的问题!

Answer 1:

当脚本期望在特定格式的数据,你经常有你的数据映射到适合的格式。 这可以在服务器代码或使用JavaScript来修改

可以使用jQuery $.map重新配置对象或阵列到另一个阵列。

DEMO: 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文档

在本地JavaScript替代方法

var chartData=[];
for( i=0; i<json.length; i++){
   chartData.push( [ json[i]['status'], json[i]['val'] ])
}


Answer 2:

据我所知这是Highcharts是多么希望其数据。 话虽这么说,解析器是很容易的:

var data;  // this is your received data
var highchartsData = []; // this is data for highcharts

$.each(data, function(i, e) {
    highchartsData.push([e.status, e.val]);
});

有一点需要注意的是,如果您收到的数据是文本(比如,从一个AJAX调用的响应),那么你需要将其转换为JavaScript对象,像这样:

var data = $.parseJSON(textData);


Answer 3:

你需要把分配方案时做出解析器在HighCharts预处理指出基本上,你解析数据,包括它的选项:

var serie1 = json.map( function(e) {
    return [e.status, e.val];
});
options.series.push({data: serie1});

这里是小提琴使用$ .MAP和选项的工作示例



Answer 4:

由于Highcharts 3.0,类别也可以通过给每个点的名称和设置轴型到“类别”萃取。

对于列条形图这将是:

    xAxis: {
        type: 'category',
    },

    series: [{
        data: [{
            name: 'Point 1',
            color: '#00FF00',
            y: 1
        }, {
            name: 'Point 2',
            color: '#FF00FF',
            y: 5
        }]
    }]


Answer 5:

您可以绑定图表使用JSON数据,直接。 你只需要设置JSON属性名称为highchart标准。 “Y”的价值和“名”的标签。

你的JSON应该像如下:

[
    {
        name: "Stopped \/ Idle",
        y: 17.469444444444
    }, {
        name: "Working",
        y: 0
    }, {
        name: "Headland Turning",
        y: 0
    }, {
        name: "Transport",
        y: 0.15333333333333
    }
]


文章来源: Write JSON parser to format data for pie chart (HighCharts)