0

我正在尝试使用以下格式的 json 数据创建列类型 highchart:

[{"id":7,"dateV":"2015-11-16","count":10},{"id":6,"dateV":"2015-11-15","count":3},{"id":5,"dateV":"2015-11-14","count":15},{"id":4,"dateV":"2015-11-13","count":10},{"id":3,"dateV":"2015-11-12","count":6},{"id":2,"dateV":"2015-11-11","count":8},{"id":1,"dateV":"2015-11-10","count":5}]

X 轴应显示日期值,Y 轴应显示计数。不知何故,我无法以所需的格式转换此 JSON。

这是我的代码。

<script type="text/javascript">
        $('#myButton').click(function() {
            var options = {
                    chart: {
                        renderTo: 'chartContainerDiv',
                        type: 'column'
                    },
                    series: [{}]
                };

                var url = "callToControllerURL";
                $.getJSON(url,  function(data) {
                    console.log(JSON.stringify(data));
                    options.series[0].data = JSON.stringify(data);
                    var chart = new Highcharts.Chart(options);
                });
            });
    </script>

控制台日志以上面指定的格式显示 JSON。我猜我必须从选项数组中形成 x 和 y 轴值。我该怎么做?

4

1 回答 1

3

您需要遍历 json 数据并通过推送值来创建类别数据和系列。

var jsonData = [{"id":7,"dateV":"2015-11-16","count":10},{"id":6,"dateV":"2015-11-15","count":3},{"id":5,"dateV":"2015-11-14","count":15},{"id":4,"dateV":"2015-11-13","count":10},{"id":3,"dateV":"2015-11-12","count":6},{"id":2,"dateV":"2015-11-11","count":8},{"id":1,"dateV":"2015-11-10","count":5}]; 

 var categoryData= [];
 var seriesData= [];
$.each(jsonData, function(i,item){
seriesData.push(jsonData[i].count);
categoryData.push(jsonData[i].dateV);
console.log("seriesData"+JSON.stringify(seriesData));
}); 

在此处查看使用您的 json 的工作演示

于 2015-11-21T13:55:02.263 回答