Importar JSON en Google Sheets
Convierte el JSON a CSV en tu navegador y luego usa Archivo → Importar → Subir de Google Sheets y ajusta el separador para que coincida. Sheets no tiene importador de JSON, así que CSV es la vía práctica; las claves anidadas llegan como rutas de columna como customer.name, y el conjunto de columnas es la unión de todos los registros, no solo las claves del primero.
Importar JSON en Google Sheets: explicación
Google Sheets no tiene importador de JSON. No hay ningún cuadro de diálogo que tome una respuesta de API y la organice en una cuadrícula, y la vía de Apps Script — UrlFetchApp, JSON.parse, setValues — es una respuesta real que la mayoría de la gente no debería tener que escribir. CSV es el formato de intercambio que Sheets sí acepta, así que el paso de conversión es todo el trabajo.
La conversión en sí es la mitad fácil, y el conversor de JSON a CSV la hace sin subir nada. La mitad que sale mal es la importación, y sale mal de formas propias de Sheets que no comparte con Excel: Sheets adivina el separador a partir de la primera línea en lugar de preguntar, aplica su propia coerción de tipos al entrar y convierte alegremente una columna de códigos de producto en números y borra los ceros a la izquierda antes de que puedas decir nada.
Esta página es la receta para llevar una exportación JSON a una cuadrícula de Sheets sin nada de eso. Qué produce el conversor, qué ajuste de importación usar, cómo frenar la coerción de tipos y los dos límites duros con los que puedes topar en una cuenta gratuita. Todo funciona en tu navegador — una exportación JSON suele contener registros reales sobre personas reales, y no necesita un desvío por un servidor para convertirse en hoja de cálculo.
La conversión ocurre en el conversor de JSON a CSV — pega el JSON, elige un separador y copia o descarga el resultado.
Si el destino es Excel y no Sheets, toma la vía de Excel en su lugar: un libro real mantiene las celdas numéricas como números y se salta por completo el cuadro de diálogo de importación de CSV.
Por qué Sheets no importa JSON y qué usar en su lugar
Google Sheets puede leer tres cosas directamente: CSV, TSV y una cuadrícula pegada. Puede traer un CSV remoto con IMPORTDATA, y la URL de una hoja de Google Sheets publicada es en sí un endpoint de CSV — pero no hay ningún camino integrado de un documento JSON a un rango de celdas. La respuesta oficial es Apps Script, y para algo puntual es más trabajo del que la tarea merece.
Así que el camino es CSV. Primero conviertes, luego importas, y todo el proceso toma alrededor de un minuto. La consecuencia importante es que cada limitación de CSV se convierte en una limitación de Sheets: una celda no distingue la cadena 22201 del número 22201, y no distingue una celda vacía de un campo que estaba ausente en el registro. Esas dos distinciones existen en tu JSON y no sobrevivirán al viaje, algo que conviene saber antes de borrar el original.
El cuadro de diálogo de importación, campo por campo
Archivo → Importar → Subir y elige el archivo. El cuadro de diálogo que aparece es donde se decide el resultado, y dos de sus controles marcan la diferencia.
El desplegable del separador viene con «Detectar» por defecto, que mira la primera línea y adivina. Esa suposición acierta lo suficiente como para fiarse de ella y falla lo suficiente como para merecer anularse: elige «Coma» o «Punto y coma» explícitamente, según lo que haya emitido el conversor. Si el archivo se abre con todo en la columna A, la suposición falló — vuelve a importar en lugar de intentar dividir la columna después.
La opción «Convertir texto en números, fechas y fórmulas» es la que hace el daño silencioso. Si la dejas activada, Sheets aplica sus propias heurísticas: un código de producto se vuelve un número y pierde sus ceros a la izquierda, una cadena de versión como 1.10 se vuelve una fecha, un ID largo se va a notación científica. Desactívala para importar cada valor como texto, exactamente como está escrito. Siempre puedes convertir una columna a propósito después; no puedes recuperar un cero a la izquierda que se eliminó en la importación.
Llevar el JSON anidado a columnas planas
El conversor aplana los objetos anidados en rutas con puntos y los arrays en rutas con corchetes, de modo que {"customer":{"name":"Ada"}} se convierte en una columna llamada customer.name y un array tags se convierte en tags[0], tags[1]. Las dos notaciones son deliberadamente distintas para que el nombre de una columna nunca sea ambiguo sobre cuál de ellas lo originó, y para que un viaje de ida y vuelta por CSV hacia JSON reconstruya el anidamiento.
El conjunto de columnas es la unión de los campos de todos los registros en orden de primera aparición. Esto importa más en Sheets que en una hoja de cálculo local, porque la importación es una operación de un solo disparo: un campo que solo aparece en el registro cuarenta aún recibe su propia columna, mientras que un conversor que lee el encabezado del primer registro lo pierde en silencio y te enteras semanas después, cuando un filtro no devuelve nada.
| JSON | Columna | Notas |
|---|---|---|
| {"customer":{"name":"Ada"}} | customer.name | Los miembros de objetos se vuelven rutas con puntos |
| {"tags":["a","b"]} | tags[0], tags[1] | Cada elemento del array recibe una columna |
| {"vip":true} | vip | Se importa como TRUE, no como el texto «true» |
| {"note":null} | note | Una celda vacía — indistinguible de un campo ausente |
Los dos límites que sí puedes alcanzar
Una cuenta gratuita de Google permite 10,000,000 de celdas en una hoja de cálculo, y son 10,000,000 de valores, no de filas. Una exportación de 50 columnas se queda sin espacio en 200,000 filas, y una importación que supere el límite falla a mitad de camino con un mensaje sobre el archivo, no sobre el límite. Si tu exportación es más grande, divídela por rango de fechas o por prefijo de ID e importa las partes en hojas separadas.
El otro límite es el tamaño de archivo del cuadro de importación, que es 100 MB. Un CSV de cien mil registros con veinte columnas ronda los 20 MB, así que este es el menos probable de los dos — pero una exportación JSON con campos de texto largos puede alcanzarlo. El conversor se niega por encima de 8 MB de JSON en lugar de congelar la pestaña, así que en la práctica te encontrarás primero con ese límite, y te lo dirá.
Mantener la hoja al día con la fuente
Un rango importado es una instantánea. Si el JSON es una exportación de algo que cambia — una tabla de pedidos, un CRM, un volcado de analítica — la hoja queda desactualizada en el momento en que aterriza, y volver a importar a mano cada mañana es justo la tarea ingrata que termina en una hoja de cálculo rota en la que nadie confía.
Las opciones honestas son dos. Si la fuente puede publicar CSV por HTTP, IMPORTDATA lo trae de forma programada a una sola celda, y SPLIT más una fórmula de matriz lo despliega — sin paso de conversión alguno, a cambio de que los datos queden públicos para cualquiera con la URL. Si no, mantén la conversión local y repítela: la herramienta acepta un pegado, así que el ciclo es exportar, pegar, descargar, importar, y toma menos de un minuto. Lo que no vale la pena es conectar un Apps Script a una clave de API privada para que una hoja guarde una credencial que no debería guardar.
Preguntas frecuentes
¿Se sube mi JSON cuando lo convierto?
No. La conversión es una llamada a una función dentro de la pestaña de tu navegador — no hay ninguna ruta de API a la que enviar el documento. Puedes comprobarlo: abre DevTools, mira el panel Network, pega un documento y ninguna petición lo lleva. La Content-Security-Policy de la página fija connect-src 'self', así que el navegador rechazaría una subida saliente de todos modos. Las exportaciones JSON suelen ser registros reales, y esa es exactamente la razón por la que la conversión se queda en local.
¿Por qué mi CSV se abre en Sheets con todo en una sola columna?
El separador del archivo no coincide con el que adivinó el cuadro de importación. Sheets viene con «Detectar» por defecto y deduce a partir de la primera línea, así que un archivo delimitado por comas importado con «Punto y coma» seleccionado aterriza por completo en la columna A. Vuelve a importar con Archivo → Importar y fija el separador explícitamente para que coincida con lo que emitió el conversor — coma, punto y coma, tabulación o barra vertical. Dividir la columna después con una fórmula es posible y siempre es peor que importar de nuevo.
¿Por qué mis códigos de producto perdieron los ceros a la izquierda?
Por la opción «Convertir texto en números, fechas y fórmulas» del cuadro de importación, que viene activada por defecto. Sheets reinterpreta cualquier cosa con forma de número, así que 00123 se convierte en 123 y un ID largo se va a notación científica. Desactiva esa opción y cada valor se importará como texto, exactamente como está escrito. Es la queja más común sobre las importaciones de CSV en Sheets, y a diferencia de Excel no hay anulación por columna en el cuadro — es todo o nada.
¿Puede Sheets importar JSON directamente?
No mediante ningún cuadro de diálogo integrado. IMPORTDATA lee CSV y TSV por HTTP, no JSON, y no hay opción de importar JSON en Archivo → Importar. Apps Script puede hacerlo — UrlFetchApp para traer, JSON.parse para leer, setValues para escribir — y para un trabajo recurrente impulsado por una API es algo razonable de construir. Para una conversión puntual es bastante más trabajo que convertir a CSV e importar eso.
¿Cuántas filas puedo importar?
Diez millones de celdas en una cuenta gratuita de Google, y es un conteo de celdas, no de filas: una exportación de cincuenta columnas llega como máximo a unas 200,000 filas. Superarlo hace que la importación falle a mitad de camino. Si tu exportación es más grande, divídela en partes e importa cada una en su propia hoja, o usa la salida del conversor, libre de rangos, como fuente para un script en lugar de una cuadrícula.
¿La conversión maneja objetos y arrays anidados?
Sí. Los objetos se vuelven rutas de columna con puntos — customer.name — y los arrays se vuelven rutas con corchetes — tags[0], tags[1]. El conjunto de columnas es la unión de todos los registros en orden de primera aparición, así que los campos opcionales reciben una columna con celdas vacías en el resto, en lugar de perderse. El modo Explode permite la vuelta pasando por el conversor de CSV a JSON; el modo Join empaqueta un array de escalares en una celda y pierde información a propósito.
¿Qué herramientas relacionadas debería usar después?
- Convertir JSON a CSVConvierte registros a una hoja de cálculo, anidados incluidosAbrir
- JSON a ExcelCrea un libro de Excel con tipos, no un CSV con otra extensiónAbrir
- Convertir CSV a JSONConvierte una exportación de hoja de cálculo en registrosAbrir
- Reglas de CSV RFC 4180Guía en lenguaje sencilloAbrir
- Formatear JSONIndenta, ordena claves y quita comentariosAbrir
- Herramientas JSONCompara, formatea, valida y explora documentos JSON.Abrir