2015-10-31 6 views
0

У меня ответ PHP JSON подходит к JS с помощью Ajax вызова и ответ JSON, как показано нижеPHP вывода JSON в chartkick LineChart формате

{ 
"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 на то, как требуется удар по чертежу. Как я могу это сделать?

ответ

0

Working Demo (Вы должны видеть результат в консоли => по инспектировать элемент)

можно назначить и инициировать любое новое свойство для объекта 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); 

}