Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

318
Visualizações
¿Cómo analizo un archivo JSON con objetos anidados usando JS?

Soy muy nuevo en JavaScript y me han dado la tarea de convertir varios archivos JSON en hojas de cálculo de Excel. Tengo problemas para entender cómo analizar un archivo JSON que tiene objetos anidados o matrices anidadas. Por favor, perdóname si no estoy usando la redacción correcta. La siguiente es una muestra de los datos JSON que necesito analizar.

 [{ "name": "Kindergarten", "subject": "Math", "framework": "NC: Standard Course of Study", "standards": [ { "id": 1306687, "name": "NC.K.CC.1", "short_description": "Standard 1." }, { "id": 1306688, "name": "NC.K.CC.1.a", "short_description": "Standard 2." }, { "id": 1306689, "name": "NC.K.CC.1.b", "short_description": "Standard 3." } ] }]

He probado tantos bucles diferentes y parece que solo puedo analizar la primera parte del archivo y no la parte anidada. Básicamente necesito que los datos se vean así cuando estén listos:

 name subject framework standards/0/id standards/0/name standards/0/short_description Kindergarten Math NC: Standard Course of Study 1306687 NC.K.CC.1 Standard 1. Kindergarten Math NC: Standard Course of Study 1306688 NC.K.CC.1.a Standard 2. Kindergarten Math NC: Standard Course of Study 1306689 NC.K.CC.1.b Standard 3.

Cualquier orientación que pueda dar será inmensamente útil.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Simplemente use JSON.parse("<your JSON string>") para analizar. Esta función devuelve un árbol de objetos que refleja el JSON procesado. Luego puede acceder a todas las propiedades del objeto en su ciclo y generar un archivo CSV, que se puede abrir con Excel.

 let csv = ""; const objects = JSON.parse("<your JSON string>"); for (const o of objects) { for (const std of o.standards) { csv += `${o.name},${o.subject},${o.framework},${std.id},${std.name},${std.short_description}`; } }

Ejemplo de trabajo:

 const jsonData = `[{ "name": "Kindergarten", "subject": "Math", "framework": "NC: Standard Course of Study", "standards": [{ "id": 1306687, "name": "NC.K.CC.1", "short_description": "Standard 1." }, { "id": 1306688, "name": "NC.K.CC.1.a", "short_description": "Standard 2." }, { "id": 1306689, "name": "NC.K.CC.1.b", "short_description": "Standard 3." } ] }]`; /* Escapes all quotes in the input in order to not break the CSV */ function val(input) { return input?.replaceAll ? input.replaceAll('"', '""') : input; } let csv = ""; const objects = JSON.parse(jsonData); for (const o of objects) { for (const std of o.standards) { csv += `"${val(o.name)}","${val(o.subject)}","${val(o.framework)}","${val(std.id)}","${val(std.name)}","${val(std.short_description)}"`; } } console.log(csv);

EDITAR: modificó el código fuente para generar más CSV guardados (ahora se permiten comillas dobles y comas en la entrada). ¡Gracias a @phuzi!

about 4 years ago · Juan Pablo Isaza Relatório

0

Creo que el problema es que está tratando de encontrar una solución de codificación solo con js y excel, que no creo que funcione, ya que las bibliotecas js excel con las que estoy familiarizado solo funcionan con json, no con json anidado. Este código funcionará y se ejecutará, pero solo toma el primer nivel de json, no el anidado, que es el segundo nivel. Usé npm para instalar el módulo XLSX con: npm install xlsx en la terminal.

 const XLSX=require('xlsx') const jsonData= [{ "name": "Kindergarten", "subject": "Math", "framework": "NC: Standard Course of Study", "standards": [ { "id": 1306687, "name": "NC.K.CC.1", "short_description": "Standard 1." }, { "id": 1306688, "name": "NC.K.CC.1.a", "short_description": "Standard 2." }, { "id": 1306689, "name": "NC.K.CC.1.b", "short_description": "Standard 3." } ] }] const convertJsonToExcel=()=>{ const workSheet = XLSX.utils.json_to_sheet(jsonData); const workBook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workBook, workSheet, "jsonData"); XLSX.write(workBook, {bookType: "xlsx", type:"buffer"}) XLSX.writeFile(workBook, "jsonData.xlsx") } convertJsonToExcel()

Aquí está el resultado: ingrese la descripción de la imagen aquí

Entonces, mi punto es que es posible que no tenga una solución, a menos que agregue otra biblioteca de idioma como python o aplane el archivo json ANTES de intentar exportarlo a Excel usando el código.

Esto es lo que encontré en una pregunta similar en Code Project Export Nested Json to Excel :

Estos son datos que no se pueden mostrar en una hoja de Excel, ya que Excel solo puede mostrar una tabla simple, donde tiene una estructura de datos de varios niveles...

Para resumir, creo que está buscando la solución incorrecta si intenta usar solo JavaScript.

about 4 years ago · Juan Pablo Isaza Relatório

0

Tienes un documento:

 let doc= '[{ "name": "Kindergarten", "subject": "Math", "framework": "NC: Standard Course of Study", "standards": [ { "id": 1306687, "name": "NC.K.CC.1", "short_description": "Standard 1." }, { "id": 1306688, "name": "NC.K.CC.1.a", "short_description": "Standard 2." }, { "id": 1306689, "name": "NC.K.CC.1.b", "short_description": "Standard 3." } ] }]'

Analizar a un objeto json con JSON.parse(doc) Luego puede iterar sobre la matriz JSON con "Nested For Loops":

 let data = JSON.parse(doc); for (let i =0; i < data.length; i++) { for(let j = 0; j < data[i].standards.length; j++) { // obviously you aren't logging to console but for purposes of the demonstration I will console.log(`${data[i].name},${data[i].subject},${data[i].framework},${data[i].standards[j].id},${data[i].standards[j].name},${data[i].standards[j].short_description}`); } }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda