0

我有一个通过ajax调用传给js的php json响应,json响应如下

{
 "success":true,
 "dataset":[{"COUNTITEMS":41,"VIEW_DATE":"2015-10-27 00:00:00 -2359"},
   {"COUNTITEMS":68,"VIEW_DATE":"2015-10-28 00:00:00 -2359"},
   {"COUNTITEMS":63,"VIEW_DATE":"2015-10-29 00:00:00 -2359"},
   {"COUNTITEMS":327,"VIEW_DATE":"2015-10-30 00:00:00 -2359"},
   {"COUNTITEMS":46,"VIEW_DATE":"2015-10-31 00:00:00 -2359"}]
}

chartkick.js 需要以下格式。在我的 js 文件中,如果我硬编码,这就是它的工作方式。

    var view_dates =        {
            "2015-10-27 00:00:00 -2359":41,
            "2015-10-28 00:00:00 -2359":68,
            "2015-10-29 00:00:00 -2359":63,
            "2015-10-30 00:00:00 -2359":327,
            "2015-10-31 00:00:00 -2359":46
            };
   new Chartkick.LineChart("chart-1", view_dates);

我无法将 json 响应解析为 chart kick 的要求。我怎样才能做到这一点?

4

1 回答 1

0

工作演示(您必须通过检查元素在控制台=> 中查看结果)

您可以为具有任何值的 json 对象分配和启动任何新属性;

var newObject = {};
newObject[propertyNameOfYourChoice_Means_NewName] = propertyValue;

这是您的问题的解决方案。现在你可以看到它是如何实现的

 var g = {
     "success":true,
     "dataset":[{"COUNTITEMS":41,"VIEW_DATE":"2015-10-27 00:00:00 -2359"},
       {"COUNTITEMS":68,"VIEW_DATE":"2015-10-28 00:00:00 -2359"},
       {"COUNTITEMS":63,"VIEW_DATE":"2015-10-29 00:00:00 -2359"},
       {"COUNTITEMS":327,"VIEW_DATE":"2015-10-30 00:00:00 -2359"},
       {"COUNTITEMS":46,"VIEW_DATE":"2015-10-31 00:00:00 -2359"}]
    };

parseJSONForChartkick(g);

function parseJSONForChartkick(oldObject)
{
var newObject = {};
var propertyName;
var propertyValue;
var ar = oldObject.dataset;
for(i=0;i<ar.length;i++)
{
propertyName = ar[i].VIEW_DATE; //You might need not following
propertyName = '"'+ar[i].VIEW_DATE+'"'; //Use This or above line
propertyValue = ar[i].COUNTITEMS;
newObject[propertyName] = propertyValue;
}
console.log(newObject);

}
于 2015-11-01T08:06:47.060 回答