Importar JSON a Google Sheets

¿Qué es JSON?

JSON son las siglas de “JavaScript Object Notation”. Es una forma de representar datos en un formato sencillo y fácil de leer que pueden utilizar fácilmente muchos lenguajes de programación.

Imagina que tienes una gran bolsa de juguetes y quieres organizarlos. Podrías utilizar diferentes bolsas para poner cada tipo de juguete en una bolsa específica, como muñecas en una bolsa, coches en otra bolsa, etc. Del mismo modo, JSON ayuda a organizar los datos agrupando información similar.

Los archivos JSON son como pequeñas bolsas de datos que contienen información sobre personas, animales u objetos. La información de un archivo JSON se organiza en pares “clave-valor”, lo que significa que cada dato tiene un nombre (la “clave”) y un valor.

Por ejemplo, si quisiéramos almacenar información sobre una tienda online, podríamos tener un archivo JSON con el siguiente aspecto:

{

“zapatos”: {

  “zapatillas”: {

    “color”: “azul”,

      “marca”: “Nike”,

        “precio”: 125

  },

  “entrenadores”: {

    “color”: “blanco”,

      “marca”: “Puma”,

        “precio”: 115

  },

  “running_shoes”: {

    “color”: “amarillo”,

      “marca”: “Asics”,

        “precio”: 145

  }

}}

Este archivo JSON contiene información sobre la sección de zapatos de una tienda web. La primera “clave” es la categoría “zapatos”.” Después de eso, las segundas “llaves” almacenan la información sobre los tipos de zapatos.

Los archivos JSON son útiles porque son fáciles de leer y escribir, y pueden ser utilizados por muchos lenguajes de programación diferentes. Suelen utilizarse para almacenar y compartir datos entre distintas aplicaciones o sitios web. Cuando desee importar o exportar datos de un archivo API, suele hacerse en formato JSON.

Cómo importar un archivo JSON en Google Sheets

Crear el resultado que buscas puede ser todo un reto. Si prefiere contar con la ayuda de uno de nuestros asesores expertos para completar su proyecto, pulse aquí

Para empezar, crea una nueva hoja de cálculo de Google Sheets escribiendo hojas.nuevas en tu navegador y dale un nombre. Abre el entorno de desarrollo integrado (IDE) de Google Apps Script haciendo clic en “Extensiones” y “Apps Script”. Se abrirá una nueva pestaña con el siguiente aspecto.

importar json a gs 10

Elimina las tres líneas de código que hay, dale un nombre al proyecto, y copia y pega el siguiente código en este espacio.

función getJson(

fileId = “139GrQu0oEu1tWAMz5vHMjzmcClxA0FQ9”, // Obtener el ID del archivo JSON.

sheetName = “Sheet1” // Nombre de la hoja a importar json

) {

var files = DriveApp.getFileById(fileId); // Especificar qué JSON obtener.

var json = JSON.parse(files.getBlob().getDataAsString()); //Obtener la información JSON que ahora es un enorme trozo de texto, y parsearlo a formato JSON.

var headers = [“category”, “item”, “colour”, “brand”, “price”]; // Definir las cabeceras para cada columna. Esto se insertará en la fila 1.

let values = [] // Este es un array vacío de Javascript que vas a rellenar en la línea 27.

 

//Estás anidando los bucles for porque el archivo json está cayendo en cascada.

for (let category in json) {

for (let item in json[category]) {

values.push([categoría, artículo, json[categoría][artículo][‘color’], json[categoría][artículo][‘marca’], json[categoría][artículo][‘precio’]])

}

}

 

var ss = SpreadsheetApp.getActiveSpreadsheet();

var nuevaHoja = ss.getHojaPorNombre(nombreHoja);

var dataToInsert = [headers].concat(values)// Aquí se introducen los encabezados en la primera fila y se crea un array.

var range = newSheet.getRange(1, 1, dataToInsert.length, dataToInsert[0].length) // obtener un rango de celdas (fila, columna, numRows, numColumns)

range.setValues(dataToInsert); // establecer los valores en el rango de celdas

}

Ejecutar una prueba

Para probar el script por primera vez, pulse aquí para hacer una copia del archivo JSON utilizado para este ejemplo.

Obtener el ID del archivo

Ahora tenemos que obtener el ID de archivo de su archivo JSON. Súbelo a Google Drive, haz clic con el botón derecho del ratón, selecciona “compartir” y haz clic en “copiar enlace”. Pega este enlace en algún sitio y copia el ID que viene entre “https://drive.google.com/file/d/” y “/view?usp=sharing” Pega este ID de archivo entre las comillas dobles de la línea 18.

importar json a gs 3

Ejecución del script

Ahora que el ID de archivo correcto está en su lugar y la secuencia de comandos sabe qué archivo para agarra, Vamos a ejecutar este script por primera vez. Haz clic en “Guardar proyecto” y después en “Ejecutar”.

importar json a gs 8

Ahora Google te pedirá permiso para ejecutar el script.

importar json a gs 9

Haga clic en “Revisar permisos” y después en “Permitir”. 

importar json a gs 6

Es posible que tenga que hacer clic una vez más en “Ejecutar”. Por lo demás, debería ver que la ejecución ha comenzado y terminado. Y si vamos a la hoja de cálculo deberíamos ver ahora este resultado. Haber importado un fichero JSON es un resultado agradable de ver. Has llegado aquí porque quieres importar tu fichero JSON. Así que ahora que el script está en su lugar y funcionando, vamos a modificarlo para tu archivo JSON.

importar json a gs 5

Modificación de los “valores-clave” de su fichero

Encontrar las posiciones de sus valores clave.

Para este ejemplo hemos utilizado cinco claves, “categoría”, “artículo”, “color”, “marca” y “precio”. Para modificar el script para que funcione con tu archivo JSON, haz doble clic en el archivo JSON dentro de Google Drive para ver la vista previa y compara las claves del ejemplo con tu archivo JSON. Toma nota de qué clave del ejemplo coincide con la posición de la clave en tu archivo.

importar json a gs 11

¿Y si su archivo JSON tiene más de dos cascadas?

Un archivo JSON tiene “cascadas”, que son las sangrías en las que se escriben los valores. Esto es importante saberlo porque el script está escrito para un archivo JSON con sólo dos cascadas, pero quizás el tuyo tenga más de dos.

En las líneas 28 y 29 del script, puedes modificar cuántas cascadas quieres buscar. Debido a que este archivo JSON tiene una cascada principal con la segunda cascada siendo “items” sólo usamos dos “for loops”. Si su archivo JSON tiene más de dos cascadas hacia abajo, tendrá que cambiar esto:

para (deje categoría en json) {

  para (deje artículo en json[categoría]) {

    values.push(... )

  }

}

Por ejemplo:

para (deje cascada1 en json) {

  para (deje cascada2 en json[cascada1]) {

    para (deje cascada3 en json[cascada1][cascada2]) {

    values.push(... )

  }

}} //Nota la llave extra para el bucle for añadido.

¿Y si su archivo JSON tiene más de cuatro categorías?

Otra cosa a destacar del script es que en la línea 30 se ve esto:

values.push([categoría, artículo, json[categoría][artículo][‘color’], json[categoría][artículo][‘marca’], json[categoría][artículo][‘precio’]])

Estamos empujando estos valores como filas en una matriz vacía y cada valor que se empuja en esta matriz se separa con una coma. Como puedes ver, este archivo JSON contiene una categoría, “zapatos” y hay tres elementos, “zapatillas”, “zapatillas de deporte” y “running_shoes”. Para cada uno de estos artículos hay tres valores, “color”, “marca” y “precio”.

Esta es la razón por la que la notación de los valores en este script es de esta manera. Vamos a desglosarlo rápidamente para que puedas modificarlo mejor para tu archivo JSON.

  1. El primer valor es simple y llano.
    ‘categoría’.
  2. Al igual que el segundo valor.
    ‘item’.
  3. Pero con el tercer valor tenemos que hacer saber al script que tiene que buscar dentro del objeto Javascript de ‘item’ y devolver el valor de ‘color’. Por esta razón el tercer valor se escribe así:
    json[categoría][artículo][‘color’].
  4. Lo mismo con el cuarto elemento. Buscamos en el objeto Javascript de ‘item’ y devolvemos ‘brand’.
    json[categoría][artículo][‘marca’]
  5. Por último, con el quinto artículo, nos quedamos en el objeto ‘artículo’ y devolvemos ‘precio’.
    json[categoría][artículo][‘precio’]

Modificación de los valores del guión.

Para cambiar los valores del script, vuelve a él y pulsa CTRL+F y haz clic en la flecha desplegable para ampliar el menú de búsqueda.

importar json a gs 7

Escribe el nombre de la clave que quieres reemplazar en la barra que aparece debajo y pulsa este icono para reemplazar todas las instancias en el script. Haga esto para cada nombre clave que desea importar a las hojas de cálculo de Google. 

Importar JSON a Google Sheets

Por último, tome su archivo JSON y manténgalo junto a la línea 30 del script. ¿Están todas las anotaciones de valor en el método values.push( ... ) indicando al script que busque en los lugares correctos? Si crees que sí, adelante. Haga clic en “Ejecutar” y vea qué resultado se crea. ¿Recibes un mensaje de error? No hay problema, forma parte del proceso. Vuelve a comprobar en las líneas 28 a 32 si tienes que retocar algo. Programar se trata de hacer pequeños cambios, probar, cambiar de nuevo hasta que el script haga lo que quieres.

Si has llegado hasta aquí en el artículo, ¡enhorabuena! Estás haciendo un trabajo muy técnico o, al menos, lo estás elaborando tú solo. Independientemente de los resultados que estés creando, eso debe respetarse. Si no eres capaz de hacerlo bien, no te preocupes. Póngase en contacto con nosotros, Comuníquenos el resultado que desea crear para su proyecto y nuestro asesor experto podrá ayudarle.

También te puede gustar...

funciones y fórmulas de google sheets

Las 5 mejores fórmulas de matrices dinámicas de Google Sheets 

Google Sheets ha evolucionado más allá de las hojas de cálculo básicas. Con la introducción de fórmulas de matriz dinámica, los usuarios ahora pueden manipular y analizar...
funciones y fórmulas de google sheets

Dominio de la fórmula FILTER: 4 casos de uso con ejemplos

La fórmula FILTRO de Google Sheets es una herramienta versátil para extraer datos que cumplen unas condiciones específicas. A diferencia de la fórmula QUERY,...
funciones y fórmulas de google sheets

Cómo liberar el poder de SUMIF y SUMIFS en Google Sheets: 4 casos de uso reales

Las fórmulas SUMIF y SUMIFS de Google Sheets son herramientas indispensables para realizar sumas condicionales. Simplifican las complejas...