JSON、Highcharts 和 Coldfusion json 数据

JSON, Highcharts and Coldfusion json data

一段时间以来,我一直在努力使这项工作发挥作用,但我似乎找不到使这项工作发挥作用的解决方案。

我可以毫无问题地使用我的 coldfusion CFC 输出 JSON,而不是我试图将此 JSON 与 Highcharts.js 一起使用。我已验证 JSON 有效,但 highcharts 似乎有问题,因为在系列数据中,数据周围有双引号。我到处寻找解决方案,但似乎找不到任何可以让我走上正确道路的帮助。如果我从 series.data 中的数组周围删除双引号,图表加载正常,但我远离它是动态的。

这是我的 CFC 的 JSON 输出:`

{
    "series": [{
        "data": "[[Date.UTC(2017,05,21),2.9],[Date.UTC(2017,05,28),2.9],[Date.UTC(2017,06,04),3.1],[Date.UTC(2017,06,11),2.9]]",
        "name": "ATC Main Pod A - B - C"
    }, {
        "data": "[[Date.UTC(2017,05,21),2.8],[Date.UTC(2017,05,28),2.6],[Date.UTC(2017,06,04),2.9],[Date.UTC(2017,06,11),2.9]]",
        "name": "ATC Mays (ACB Blue)"
    }, {
        "data": "[[Date.UTC(2017,05,21),2.4],[Date.UTC(2017,05,28),2.6],[Date.UTC(2017,06,04),3],[Date.UTC(2017,06,11),3.2]]",
        "name": "ATC Mays (ACB Purple)"
    }, {
        "data": "[[Date.UTC(2017,05,21),3.3],[Date.UTC(2017,05,28),3.3],[Date.UTC(2017,06,04),3.4],[Date.UTC(2017,06,11),3.3]]",
        "name": "ATC R10 Pod D"
    }, {
        "data": "[[Date.UTC(2017,05,21),3.3],[Date.UTC(2017,05,28),3.4],[Date.UTC(2017,06,04),2.8],[Date.UTC(2017,06,11),1.9]]",
        "name": "ATC TU Pod A - B"
    }, {
        "data": "[[Date.UTC(2017,05,21),2.9],[Date.UTC(2017,05,28),2.9],[Date.UTC(2017,06,04),3.1],[Date.UTC(2017,06,11),3.4]]",
        "name": "CTRC 1st Floor"
    }, {
        "data": "[[Date.UTC(2017,05,21),2.9],[Date.UTC(2017,05,28),3.3],[Date.UTC(2017,06,04),3.2],[Date.UTC(2017,06,11),2.3]]",
        "name": "CTRC 2nd Floor"
    }]
}

这是我的 ajax 调用的样子:

function loadChartData(c){
$.ajax({type: "POST", url: "CFCs/survey.cfc", data: {method:"results_RLU", CENTERID: c},dataType: 'json',success: function(data){
    options.series = data.series
        var chart = new Highcharts.Chart(options)
    }
});
}

没问题!

只需迭代系列中的每个项目并将数据解析为有效的 JSON 对象。

尽情享受吧:)

function loadChartData(c){
$.ajax({type: "POST", url: "CFCs/survey.cfc", data: {method:"results_RLU", CENTERID: c},dataType: 'json',success: function(data){

    options.series = data.series.map(function(item) 
    {
       item.data = JSON.parse(item.data);

       return item;
    });

    var chart = new Highcharts.Chart(options)
    }
});
}