2014-09-03 3 views
-1

à l'aide d3.json comment convertir ce formatim essayant de formater mon fichier json en utilisant d3.json(). Quelqu'un peut-il me aider

[{ "handlerId": "AET55V8366", "HANDLER_MODEL": "Aetrium 55V8", "START1": "30/03/2014 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 1 2: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": "14/06/2014 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 "},

à ce format ??????????

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

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

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

Répondre

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

tableau de résultats est le tableau que vous recherchez. J'espère que ça va aider.

data.json est le fichier contenant le format des données ci-dessus dans la question et observe le tableau des résultats.

+0

Hey! Tu es incroyable! Merci beaucoup pour la réponse rapide. C'est exactement ce dont j'ai besoin et ça marche comme je m'y attendais! Merci beaucoup! – elvis

+0

Si c'est bon pour vous, vous pouvez up-vote/utilisateur-accepter ... :) –

+0

sûr! dois-je cliquer sur l'onglet de vote comme ???? Je suis désolé, c'est ma première fois ici en stackoverflow, comment puis-je faire l'utilisateur-accepter ??? – elvis

0

Ce que vous voulez faire ici n'est pas clair. Je peux voir que vous voulez extraire une date et une heure de début et de fin, mais il y a 3 choix, donc je viens de sélectionner 1. De plus, vous devez savoir que vous ne pouvez pas créer de nouvel objet date dans un objet json. Vous devez le faire dehors et le passer dans l'objet. De toute façon, vous devriez être en mesure de réaliser ce que vous cherchez avec le code ci-dessous (qui est similaire dans le concept ce que saikiran a posté, juste un peu plus compact (et j'étais trop paresseux pour analyser chacun des trois fois objets).

d3.json("rawJson.json", function (error, json){ 
    console.log(json) 
    var newJson = []; 
    var timeFormat = d3.time.format("%Y-%m-%d %H:%M:%S"); 

    json.forEach(function (d,i) { 
     el = { 
      "startDate": timeFormat.parse(d.START1), 
      "endDate": timeFormat.parse(d.END1), 
      "taskName": d.HANDLERID, 
      "status": d.VAL1 
     } 
     newJson.push(el) 
    }) 
console.log(newJson); 
}) 

Juste une dernière chose, le json que vous avez posté est assez difficile à lire. Je suggère d'utiliser un service de linter comme jsonlint. Il rend votre json plus lisible par l'homme et le vérifie également pour des erreurs structurelles.

+0

Merci pour la réponse im désolé si mes données json est difficile à lire. C'est la première fois que je pose une question ici et je suis très heureux d'avoir une réponse rapide et utile à vous tous. Votre aide est tellement appréciée – elvis

+0

salut comment puis-je ajouter une nouvelle date? donc mes données ressembleraient à var tasks = [ {"startDate": new Date ("2014-03-30 00:00:00"), "endDate": nouvelle Date ("2014-06-17 02:44: 11 ")," taskName ":" AET55V8366 "," status ": 49.7950}]; – elvis

Questions connexes