Search code examples
d3.jsdrupal-6

im trying to format my json file using d3.json(). Can anyone help me


using d3.json how to convert from this format

[{"HANDLERID":"AET55V8366","HANDLER_MODEL":"AETRIUM 55V8", "START1":"2014-03-30 00:00:00","END1":"2014-06-17 02:44:11","VAL1":"49.7950", "START2":"2014-06-17 02:44:11","END2":"2014-07-18 18:13:51","VAL2":"69.7130", "START3":"2014-07-18 18:13:51","END3":"2014-09-04 05:28:22","VAL3":"99.00"},

{"HANDLERID":"AET55V8441","HANDLER_MODEL":"AETRIUM 55V8", "START1":"2014-02-19 00:00:00","END1":"2014-05-28 05:23:15","VAL1":"50.0350", "START2":"2014-05-28 05:23:15","END2":"2014-07-06 12:20:33","VAL2":"70.0490", "START3":"2014-07-06 12:20:33","END3":"2014-09-03 10:46:30","VAL3":"100.00"},

{"HANDLERID":"AET55V8445","HANDLER_MODEL":"AETRIUM 55V8", "START1":"2014-06-14 00:00:00","END1":"2014-07-23 09:36:38","VAL1":"51.7700", "START2":"2014-07-23 09:36:38","END2":"2014-08-08 03:51:17","VAL2":"72.4780", "START3":"2014-08-08 03:51:17","END3":"2014-08-31 19:13:17","VAL3":"103.00"},

to this format??????????

var tasks = [ {"startDate":new Date("2014-03-30 00:00:00"),"endDate":new Date("2014-06-17 02:44:11"),"taskName":"AET55V8366","status":49.7950}, {"startDate":new Date("2014-06-17 02:44:11"),"endDate":new Date("2014-07-18 18:13:51"),"taskName":"AET55V8366","status":69.7130}, {"startDate":new Date("2014-07-18 18:13:51"),"endDate":new Date("2014-09-04 05:28:22"),"taskName":"AET55V8366","status":99.00},

{"startDate":new Date("2014-02-19 00:00:00"),"endDate":new Date("2014-05-28 05:23:15"),"taskName":"AET55V8441","status":50.0350}, {"startDate":new Date("2014-05-28 05:23:15"),"endDate":new Date("2014-07-06 12:20:33"),"taskName":"AET55V8441","status":70.0490}, {"startDate":new Date("2014-07-06 12:20:33"),"endDate":new Date("2014-09-03 10:46:30"),"taskName":"AET55V8441","status":100.00},

{"startDate":new Date("2014-06-14 00:00:00"),"endDate":new Date("2014-07-23 09:36:38"),"taskName":"AET55V8445","status":51.7700}, {"startDate":new Date("2014-07-23 09:36:38"),"endDate":new Date("2014-08-08 03:51:17"),"taskName":"AET55V8445","status":72.4780}, {"startDate":new Date("2014-08-08 03:51:17"),"endDate":new Date("2014-08-31 19:13:17"),"taskName":"AET55V8445","status":103.00}, ];


Solution

  • var my=[]; 
    d3.json("data.json", function(data){ data.forEach(function(d){ my.push(d);}); });
    var result=[];
    my.forEach(function(d, i){
    result.push({"startDate": (d3.time.format("%Y-%m-%d %X").parse(my[i].START1)),
                 "endDate": (d3.time.format("%Y-%m-%d %X").parse(my[i].END1)),  
                 "taskName": my[i].HANDLERID,  
                 "status": my[i].VAL1});
    result.push({"startDate": (d3.time.format("%Y-%m-%d %X").parse(my[i].START2)),
                 "endDate": (d3.time.format("%Y-%m-%d %X").parse(my[i].END2)),  
                 "taskName": my[i].HANDLERID,  
                 "status": my[i].VAL2});
    result.push({"startDate": (d3.time.format("%Y-%m-%d %X").parse(my[i].START3)),
                 "endDate": (d3.time.format("%Y-%m-%d %X").parse(my[i].END3)),  
                 "taskName": my[0].HANDLERID,  
                 "status": my[i].VAL3});
    });
    console.log(result);
    

    result array is the array, which you are looking for. Hope it'll help.

    data.json is the file containing the format of above data in the question and observe result array.