Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

129
Views
Convierta datos json tabulares en datos jerárquicos d3 para el gráfico de paquetes

Tengo un pequeño conjunto de datos en un archivo JSON que quiero convertir a un formato de datos jerárquico para crear un gráfico de paquete circular. Este es mi conjunto de datos:

 { "Marks": [ {"student": "Maria", "AI": 95, "DB": 77, "CG": 31, "ITP": 97, "LIT": 45}, {"student": "Sam", "AI": 85, "DB": 37, "CG": 39, "ITP": 45, "LIT": 55} ] }

Esta es la salida que estoy buscando:

 { "name": "Marks", "children": [ { "name": "Maria", "children": [ { "name": "AI" , "marks" : 95}, { "name": "DB" , "marks" : 77}, { "name": "CG" , "marks" : 35}, { "name": "ITP" , "marks" : 97}, { "name": "LIT" , "marks" : 45}, ] }, { "name": "Sam", "children": [ { "name": "AI" , "marks" : 85}, { "name": "DB" , "marks" : 37}, { "name": "CG" , "marks" : 39}, { "name": "ITP" , "marks" : 45}, { "name": "LIT" , "marks" : 55}, ] } ] }

¿Alguna idea de cómo puedo proceder con esto?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

prueba esto

 var newObj = {}; Object.keys(marks).forEach((key) => { newObj.name = key; newObj.children = []; var i = 0; marks[key].forEach((element) => { Object.keys(element).forEach((k) => { if (k == "student") newObj.children.push({ name: element[k], children: [] }); else newObj.children[i].children.push({ name: k, marks: element[k] }); }); i++; }); });

resultado

 { "name": "Marks", "children": [ { "name": "Maria", "children": [ { "name": "AI", "marks": 95 }, { "name": "DB", "marks": 77 }, { "name": "CG", "marks": 31 }, { "name": "ITP", "marks": 97 }, { "name": "LIT", "marks": 45 } ] }, { "name": "Sam", "children": [ { "name": "AI", "marks": 85 }, { "name": "DB", "marks": 37 }, { "name": "CG", "marks": 39 }, { "name": "ITP", "marks": 45 }, { "name": "LIT", "marks": 55 } ] } ] }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!