JSON数据数组不是JQPlot.js的有效返回值

时间:2017-12-23 00:40:54

标签: javascript arrays json jqplot matomo

我正在使用JQPlot.js显示来自自托管Piwik服务的分析。我面临的问题是从Piwik配置API数据数组以返回有效的jqPlot数据数组。

来自API的JSON中的Piwik数据通过https://demo.piwik.org/?module=API&method=VisitsSummary.getVisits&idSite=7&period=day&date=last30&format=json&token_auth=anonymous

{"2017-12-19":854,"2017-12-20":939,"2017-12-21":767,"2017-12-22":571,"2017-12-23":3}

我需要有效JQPlot.js数组中的数据的示例

['2017-12-19',854], ['2017-12-20',939], ['2017-12-21',767], ['2017-12-22',571], ['2017-12-23',3]]

显示图表的脚本是

$(document).ready(function(){
    var ajaxDataRenderer = function(url, plot, options) {
      var ret = null;
      $.ajax({
        async: false,
        url: url,
        dataType:"json",
        success: function(data) {
        ret = data;
      }
    });
    return ret;
  };

var jsonurl = "https://demo.piwik.org/?module=API&method=VisitsSummary.getVisits&idSite=7&period=day&date=last30&format=json&token_auth=anonymous";

  var plot2 = $.jqplot('chart2', jsonurl,{
    title: "AJAX JSON Data Renderer",
    dataRenderer: ajaxDataRenderer,
    dataRendererOptions: {
      unusedOptionalUrl: jsonurl
    }
  });
});

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以通过查看数据来创建所需的数组:

input = {"2017-12-19": 854, "2017-12-20": 939, "2017-12-21": 767, "2017-12-22": 571, "2017-12-23": 3}
arr = []
for (var key in input) {
    if (input.hasOwnProperty(key)) {
        arr.push([key, input[key]]);
    }
}
然后

arr将包含以下数组:

[ [ '2017-12-19', 854 ],
  [ '2017-12-20', 939 ],
  [ '2017-12-21', 767 ],
  [ '2017-12-22', 571 ],
  [ '2017-12-23', 3 ] ]