Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

193
Vistas
Estructura JSON formada por arreglos dentro de arreglos

Estoy analizando este JSON con el objetivo de exportar la lista de eventos fila por fila a la hoja. Este JSON tiene una estructura que considero no simple, hay arreglos dentro de arreglos.

espero algo asi

 03/07/21 Rugby League NRL Canterbury-Bankstown Manly Ended 0 66 03/07/21 Rugby League NRL Canberra Gold Coast Ended 6 44 03/07/21 Rugby League NRL Newcastle North Queensland Ended 0 38 03/07/21 Rugby Union International Friendlie Maori All Blacks Samoa Ended 38 21 ... further events

Este ha sido mi enfoque

 function jSON() { var destSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("jsonTest"); var response = UrlFetchApp.fetch("https://lsc.fn.sportradar.com/common/en/Europe:London/gismo/sport_matches/12/2021-07-03"); var dataRes = JSON.parse(response.getContentText()); var dataSet = dataRes.doc[0].data.sport.realcategories; var output = [] for (var i = 0; i < dataSet.length; i++) { data = dataSet[i]; var val = []; val = [ data.tournaments[0].matches[i]._dt.date ,data.name ,data.tournaments[0].name ,data.tournaments[0].matches[i].teams.home.name ,data.tournaments[0].matches[i].teams.away.name ,data.tournaments[0].matches[i].status.name ,data.tournaments[0].matches[i].result.home ,data.tournaments[0].matches[i].result.away ]; output.push(val); Logger.log(output); } destSheet.getRange(2,1,output.length,output[0].length).setValues(output); }

tengo esta salida

 03/07/21 Rugby League NRL Canterbury-Bankstown Manly Ended 0 66 03/07/21 Rugby Union International Friendlies New Zealand Tonga Ended 102 0

Me gustaría tratar de capturar todos los eventos y usar el enfoque correcto.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Básicamente necesitas más bucles; uno para cada matriz anidada para entrar.

Hay algunos problemas; mire su código sangrando lo hace difícil de leer y fácil de cometer errores. También está utilizando i , que es el contador de realcategories en las coincidencias ( matches[i] ), lo que significa que solo está viendo la coincidencia 0 de la categoría 0 y la coincidencia 1 de la categoría uno ...

Pruebe esto: la otra respuesta es más moderna, pero está más cerca de donde está comenzando; así que espero que tenga sentido...?

 for (var i = 0; i < dataSet.length; i++) { data = dataSet[i]; for (var j = 0; j < data.tournaments.length; j++) { for (var k = 0; k < data.tournaments[j].matches.length; k++) { output.push([ data.tournaments[j].matches[k]._dt.date ,data.name ,data.tournaments[j].name ,data.tournaments[j].matches[k].teams.home.name ,data.tournaments[j].matches[k].teams.away.name ,data.tournaments[j].matches[k].status.name ,data.tournaments[j].matches[k].result.home ,data.tournaments[j].matches[k].result.away ]); } } }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Necesitas iterar sobre categorías, torneos y partidos. Tal vez algo como esto:

 var response = UrlFetchApp.fetch("https://lsc.fn.sportradar.com/common/en/Europe:London/gismo/sport_matches/12/2021-07-03"); var dataRes = JSON.parse(response.getContentText()); var dataSet = dataRes.doc[0].data.sport.realcategories; dataSet.reduce((prev, category) => { return [ ...prev, ...category.tournaments .map((tournament) => { return tournament.matches.map((match) => { return [ match._dt.date, category.name, tournament.name, match.teams.home.name, match.teams.away.name, match.status.name, match.result.home, match.result.away, ]; }); }) .flat(), ]; }, []);
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda