2016-03-08 3 views
1

Привет я получаю массив JSON в качестве ответа запроса Ajax:Формат JSON массив диаграммы ввода

{"chart":{"2016-03-08":"1","2016-03-07":"4","2016-03-06":0,"2016-03-05" 
:0,"2016-03-04":0,"2016-03-03":"145","2016-03-02":0}} 

Теперь я хочу, чтобы подготовить диаграмму, давая эти значения диаграммы ввода, как показано ниже: (я хочу, чтобы результат как это сверху массива)

       data: [{ 
            y: '2016-03-07', 
            a: 100 
            }, { 
             y: '2016-03-08', 
             a: 75 
            }, { 
             y: '2016-03-06', 
             a: 50 
            }, { 
             y: '2016-03-05', 
             a: 75 
            }, { 
             y: '2016-03-09', 
             a: 50 
            }, { 
             y: '2016-03-03', 
             a: 75 
            }, { 
             y: '2016-03-02', 
             a: 180 
            } 
           ], 

Я пробовал:

var chart_params = {}; 
for (var key in data_chart) { 
    let value = data_chart[key]; 
    chart_params = '{ y:'+ key+ ', a: '+value+' }'; 
} 
console.log(chart_params); 

но не дает выхода, как ожидается,

ответ

1

Попробуйте

data = {"chart":{"2016-03-08":"1","2016-03-07":"4","2016-03-06":0,"2016-03-05" :0,"2016-03-04":0,"2016-03-03":"145","2016-03-02":0}} 

var chart_params = []; 
data_chart = data.chart; 
for (var key in data_chart) { 
     var value = data_chart[key]; 
     chart_params.push({ y: key, a:value}); 
} 
console.log(chart_params); 

jsfiddle: https://jsfiddle.net/hb8qd1p8/1/

+0

Отличный !! Это сработало для меня .. Спасибо .. cant upvote :( –

+0

@dreamstrue вы можете отметить как ответ, если он решил вашу проблему – madalinivascu

+0

@dreamstrue, Если это сработало для вас, то почему? «Cant upvote» *! – mmuzahid

1

@ ответ Mădălin является правильным исправление для вашей проблемы, хотя и другой вариант, чтобы сделать то, что вы хотите использовать map: -

var data = {"chart":{"2016-03-08":"1","2016-03-07":"4","2016-03-06":0,"2016-03-05":0,"2016-03-04":0,"2016-03-03":"145","2016-03-02":0}}; 
 

 
var array = Object.keys(data.chart).map(function (key) { 
 
    return { y: key, a: data.chart[key] }; 
 
}); 
 

 
document.write(JSON.stringify(array, null, 4));

+0

, которая была решена. Большое вам спасибо за ваш ответ. Я буду голосовать, как только у меня будет 15 репо :) –