Javascript Morris.js无法显示ajax返回的数据

Javascript Morris.js无法显示ajax返回的数据,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下代码来显示文件在过去30天内的下载情况: 所有数据都来自“ajax/downloads.php”,只需对我的数据库进行简单的查询 var pastDays = 30; //this value shows how many days back to show statistics $.ajax({ type: "POST", cache: false, url: "ajax/downloads.php", d

我有以下代码来显示文件在过去30天内的下载情况:

所有数据都来自“ajax/downloads.php”,只需对我的数据库进行简单的查询

    var pastDays = 30; //this value shows how many days back to show statistics
    $.ajax({
        type: "POST",
        cache: false,
        url: "ajax/downloads.php",
        dataType: "json",
        data: "days="+pastDays,
        success : function(res) {
            var obj = [];
            for(var x = 0; x <= pastDays; x++){
                var currObj = res[x];
                var objCombo = currObj.split("|");
                var objItem = "{date: '"+objCombo[0]+"', downloads: '"+objCombo[1]+"'}";
                objItem = JSON.stringify(eval("(" + objItem + ")"));
                obj.push(objItem);
            }
            console.log(obj);
}
推送后得到的控制台输出为:

   console.log(obj); 
["{"date":"07Apr","downloads":"1"}", "{"date":"06Apr","downloads":"3"}", "{"date":"05Apr","downloads":"12"}", "{"date":"04Apr","downloads":"11"}", "{"date":"03Apr","downloads":"0"}", "{"date":"02Apr","downloads":"0"}", "{"date":"01Apr","downloads":"6"}", "{"date":"31Mar","downloads":"0"}", "{"date":"30Mar","downloads":"7"}", "{"date":"29Mar","downloads":"16"}", "{"date":"28Mar","downloads":"5"}", "{"date":"27Mar","downloads":"5"}", "{"date":"26Mar","downloads":"12"}", "{"date":"25Mar","downloads":"9"}", "{"date":"24Mar","downloads":"4"}", "{"date":"23Mar","downloads":"10"}", "{"date":"22Mar","downloads":"16"}", "{"date":"21Mar","downloads":"2"}", "{"date":"20Mar","downloads":"19"}", "{"date":"19Mar","downloads":"22"}", "{"date":"18Mar","downloads":"10"}", "{"date":"17Mar","downloads":"11"}", "{"date":"16Mar","downloads":"10"}", "{"date":"15Mar","downloads":"19"}", "{"date":"14Mar","downloads":"0"}", "{"date":"13Mar","downloads":"4"}", "{"date":"12Mar","downloads":"14"}", "{"date":"11Mar","downloads":"5"}", "{"date":"10Mar","downloads":"26"}", "{"date":"09Mar","downloads":"7"}", "{"date":"08Mar","downloads":"5"}"]
然而,当我把它输入Morris.bar时,我得到了“未定义”的值

如果我在代码中手动指定“var obj”并省略ajax,Morris.js工作得很好:

var obj = [ {"date":"07Apr","downloads":"1"}, {"date":"06Apr","downloads":"3"}, {"date":"05Apr","downloads":"12"}, {"date":"04Apr","downloads":"11"}, {"date":"03Apr","downloads":"0"}, {"date":"02Apr","downloads":"0"}, {"date":"01Apr","downloads":"6"}, {"date":"31Mar","downloads":"0"}, {"date":"30Mar","downloads":"7"}, {"date":"29Mar","downloads":"16"}, {"date":"28Mar","downloads":"5"}, {"date":"27Mar","downloads":"5"}, {"date":"26Mar","downloads":"12"}, {"date":"25Mar","downloads":"9"}, {"date":"24Mar","downloads":"4"}, {"date":"23Mar","downloads":"10"}, {"date":"22Mar","downloads":"16"}, {"date":"21Mar","downloads":"2"}, {"date":"20Mar","downloads":"19"}, {"date":"19Mar","downloads":"22"}, {"date":"18Mar","downloads":"10"}, {"date":"17Mar","downloads":"11"}, {"date":"16Mar","downloads":"10"}, {"date":"15Mar","downloads":"19"}, {"date":"14Mar","downloads":"0"}, {"date":"13Mar","downloads":"4"}, {"date":"12Mar","downloads":"14"}, {"date":"11Mar","downloads":"5"}, {"date":"10Mar","downloads":"26"}, {"date":"09Mar","downloads":"7"}, {"date":"08Mar","downloads":"5"} ];
请注意两个阵列之间的差异:

从ajax中我得到:

["{"date":"07Apr","downloads":"1"}", "{"date":"06Apr","downloads":"3"}", ...]
而有效的方法是这样的:

[ {"date":"07Apr","downloads":"1"}, {"date":"06Apr","downloads":"3"}, ...]
最后,这是我发起莫里斯的方式:

        Morris.Bar({
          element: 'bar-requests',
          data: obj,
          xkey: ['date'],
          ykeys: ['downloads'],
          labels: ['downloads']
        });

关于如何将ajax返回的数据反馈给Morris,我有什么想法吗?

也许我一开始没有正确地表达这个问题,因为我没有得到任何答案,所以我想简化它,并将其作为一个新问题发布(希望我没有违反任何网站规则)。。。无论如何,问题解决了

以下是对我有效的解决方案:

您何时调用Morris.Bar,它是否在ajax调用返回之前创建?那将是我的梦想guess@ChrisC即使这种情况是真的——因为我第一次使用morris.js,所以我说不出来,但必须有一种方法来填充动态生成的数据。。。
        Morris.Bar({
          element: 'bar-requests',
          data: obj,
          xkey: ['date'],
          ykeys: ['downloads'],
          labels: ['downloads']
        });