简体   繁体   English

PHP的JSON输出到Chartkick线图格式

[英]php json output to chartkick linechart format

I have a php json response coming to js via ajax call and the json response is as below 我有一个通过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 requires the following format. chartkick.js需要以下格式。 In my js file, this is how it works if I hard coded. 在我的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);

I cannot parse the json response to how chart kick requires. 我无法解析json响应,以了解图表踢的要求。 How can i do this? 我怎样才能做到这一点?

Working Demo (You have to see result in console=> by inspect element) 工作演示 (您必须通过inspect元素在console =>中查看结果)

You can assign and initiate any new property for a json object with any value; 您可以使用任何值为json对象分配和启动任何新属性;

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

This was solution to your problem. 这是解决您的问题的方法。 Now you could see how its implmented 现在您可以看到其实施方式

 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);

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM