¿Qué es un archivo JSON? Cómo se ve en realidad
Aquí tienes un archivo JSON real: dos registros de clientes. Léelo despacio una vez, porque cada concepto de esta guía vuelve a él.
Todo el archivo es un array, marcado con corchetes [ ], que contiene dos objetos. Cada objeto, marcado con llaves { }, es un registro. Dentro de un objeto, los datos viven en pares clave-valor: "id": 101 significa que la clave "id" contiene el valor 101, y las claves siempre son cadenas entre comillas.
Los valores conservan sus tipos, y esa es una de las superpotencias de JSON. "Amelia Chen" es una cadena (texto, entre comillas). 101, 2023 y 4 son números (sin comillas). true y false son booleanos. null es un "sin valor aquí" explícito, que es distinto de una cadena vacía: lastNote es null para Amelia, lo que significa que el campo existe pero no tiene valor, mientras que el lastNote de Bruno contiene el texto "Call, don't email".
Luego viene el anidado, la razón por la que existe JSON. "address" es un objeto dentro del objeto cliente, con sus propias claves city y state. "tags" es un array dentro del objeto cliente, que contiene dos cadenas. JSON se anida tan profundo como quieras: objetos dentro de arrays dentro de objetos, hasta donde lleguen tus datos. Los espacios en blanco son irrelevantes, así que la versión con formato legible de arriba y una versión minificada de una sola línea son los mismos datos. Una peculiaridad que vale la pena conocer: si una clave aparece dos veces en un objeto, el último valor gana y el primero se pierde en silencio. Verificado con JSON.parse en la máquina de compilación: {"a":1,"a":2} se analiza como 2. Rara vez ocurre en la práctica, pero cuando ocurre, nada te avisa.
[
{
"id": 101,
"name": "Amelia Chen",
"email": "amelia@example.com",
"vip": true,
"signupYear": 2023,
"address": { "city": "Austin", "state": "TX" },
"orders": 4,
"tags": ["newsletter", "referral"],
"lastNote": null
},
{
"id": 102,
"name": "Bruno Almeida",
"email": "bruno@example.com",
"vip": false,
"signupYear": 2024,
"address": { "city": "São Paulo", "state": "SP" },
"orders": 1,
"tags": ["newsletter"],
"lastNote": "Call, don't email"
}
]¿Qué es un archivo CSV? Cómo se ve en realidad
Ahora los mismos dos registros en CSV. Esta salida fue producida por el conversor de esta página a partir del JSON de arriba, con el aplanado activado, así que lo que ves es exactamente lo que hace la conversión, no una ilustración.
La primera línea es la fila de encabezado: los nombres de las columnas. Cada línea después es un registro, con los valores en el mismo orden, separados por comas. Eso es todo el formato: encabezado, filas, delimitador. Diez columnas, dos filas, ningún anidado en ninguna parte.
Todo es texto ahora, y esa es la característica definitoria del CSV. 101, true y 2023 parecen un número y booleanos, pero el archivo no lo sabe: son caracteres, y lo que abra el archivo decide qué significan. La celda vacía al final de la fila de Amelia es su lastNote nulo: null se convirtió en nada. Sus dos etiquetas se convirtieron en una celda, "newsletter; referral", unidas con "; ". Y la nota de Bruno está entre comillas, "Call, don't email", porque contiene una coma: el entrecomillado es como el CSV protege un valor que contiene el delimitador.
El objeto address se convirtió en dos columnas, address.city y address.state. Este aplanado con notación de punto es exactamente lo que hacen los conversores, y nuestra guía de aplanado explica a fondo el interruptor que hay detrás. Fíjate en lo que el CSV ya no puede decir: que city y state pertenecían a un único objeto address, o que newsletter y referral eran dos etiquetas separadas en lugar de una cadena con un punto y coma. La forma desapareció. Los valores permanecen.
id,name,email,vip,signupYear,address.city,address.state,orders,tags,lastNote
101,Amelia Chen,amelia@example.com,true,2023,Austin,TX,4,newsletter; referral,
102,Bruno Almeida,bruno@example.com,false,2024,São Paulo,SP,1,newsletter,"Call, don't email"Las cinco diferencias que de verdad importan
Mismos datos, dos filosofías. Cinco diferencias deciden a qué formato recurres, y explican casi cualquier discusión de "cuál debería usar" que vayas a escuchar.
Primera, la forma: JSON es un árbol, CSV es una tabla. JSON puede contener un pedido que contiene un cliente que contiene una dirección que contiene una lista de artículos, anidando tan profundo como lo exige la realidad. CSV tiene exactamente un nivel: filas y columnas. Todo lo más profundo debe aplanarse en columnas con notación de punto o serializarse como texto en una celda, y en cualquier caso la estructura original ya no está realmente ahí.
Segunda, los tipos: JSON distingue el número 2023 del texto "2023", y el booleano true de la cadena "true". CSV guarda caracteres; la interpretación ocurre después, en lo que abra el archivo. Por eso la cadena "007" llega en un CSV como los caracteres 007 (verificado en el conversor de esta página), pero una hoja de cálculo puede mostrarla como 7 al abrir el archivo: el CSV conservó el texto fielmente, y Excel añadió su propia suposición encima. El formato hizo su trabajo; el visor añadió una opinión.
Tercera, el esquema: JSON se describe a sí mismo. Cada registro lleva sus propias claves, así que los registros pueden diferir: un cliente puede tener un campo "notes" que los demás no tienen, y el archivo sigue siendo perfectamente válido. El esquema de CSV vive en la fila de encabezado y asume uniformidad. Una fila con un valor extra no tiene dónde ponerlo de forma documentada, y los datos irregulares, donde las filas llevan campos distintos, se convierten en un rompecabezas de alineación de columnas en lugar de un asunto menor.
Cuarta, la edición a mano: JSON castiga los pequeños errores en voz alta. Una coma o comilla faltante invalida todo el archivo, lo cual es molesto pero honesto, y por eso existen los validadores de JSON. CSV castiga los pequeños errores en silencio. Una coma sin comillas dentro de un valor desplaza cada columna posterior, y el archivo se abre igual, solo que mal. Cuando editas a mano, el fallo ruidoso gana a la corrupción silenciosa.
Quinta, los productores: los formatos siguen a sus productores. Las APIs, las apps, las bases de datos y los registros emiten JSON porque piensan en estructuras anidadas con tipos. Las hojas de cálculo, las exportaciones empresariales y los archivos adjuntos de correo son CSV porque los humanos piensan en tablas. Cuando alguien te entrega un archivo, su formato suele decirte de qué mundo viene, y convertir es como esos dos mundos se hablan entre sí.
Lo que realmente hace convertir JSON a CSV
Convertir es aplanar: proyectar el árbol sobre una tabla. Cada afirmación de esta sección se verificó en la máquina de compilación contra el motor de conversión exacto que ejecuta esta página, así que estas son las reglas reales, no las idealizadas.
Con el aplanado activado, el motor aplica seis reglas. Los objetos anidados se convierten en columnas con notación de punto: address.city, address.state. Las listas de valores simples se convierten en una celda unida con "; ": newsletter y referral se convirtieron en "newsletter; referral". Null se convierte en una celda vacía. Una lista vacía también se convierte en una celda vacía, lo que significa que null y una lista vacía son indistinguibles después de la conversión. Un objeto vacío se convierte en el texto literal {}. Los números y booleanos se convierten en sus formas de texto: 2023 se convierte en los caracteres "2023".
La sexta regla cubre el caso incómodo: una lista de objetos. No hay forma sensata de unir objetos con un separador, así que el motor guarda la lista como texto JSON dentro de la celda, con sus comillas duplicadas. Probado con un registro de prueba, un objeto vacío, una lista vacía, un nulo, un anidado de tres niveles y una lista de objetos, produjo exactamente esto:
Con el aplanado desactivado, el motor lo mantiene más simple y menos útil: cada valor anidado queda como texto JSON en su celda. El mismo objeto address se convierte en el texto de celda {"city":"Austin"}, comillas duplicadas. Mismos valores, mucho menos utilizable como tabla. Nuestra guía de aplanado cubre cuándo cada ajuste es la elección correcta.
Una regla silenciosa más, y ocurre antes de que la conversión siquiera empiece. Como JSON.parse conserva el último valor cuando una clave se repite, un registro como {"code":"A1","code":"B2"} se convierte con solo B2. El primer valor desapareció antes de que el conversor viera los datos. Raro en la práctica, vale la pena saberlo exactamente una vez.
a,b,c,d.e.f,g
{},,,1,"[{""h"":1},{""h"":2}]"Qué sobrevive al viaje y qué no
Qué sobrevive: cada valor hoja, como texto. Nombres, números, fechas, notas, direcciones de correo: todos presentes en el CSV, todos correctos. Si tu pregunta es "¿perdí alguna información que escribí?", la respuesta es no. Para una hoja de cálculo, un asistente de importación o un vistazo rápido humano, no falta nada de lo que necesitas.
Qué no sobrevive: los tipos, primero. El número 2023 y el texto "2023" son idénticos en CSV; true y "true" también son idénticos. Lo que lea el CSV adivinará, y las suposiciones varían: Excel convierte famosamente el texto "007" en el número 7 y "1-2" en una fecha. Segundo, la forma anidada: address.city ya no sabe que fue un objeto, y "newsletter; referral" ya no sabe que fueron dos etiquetas. Tercero, las claves duplicadas: solo sobrevive el último valor. Cuarto, la distinción entre null y una lista vacía: ambas se convierten en una celda vacía, así que "sin valor" y "una lista sin nada dentro" se fusionan en una.
Esto crea el problema del desaplanado: convertir de vuelta es adivinar. ¿Era "newsletter; referral" dos etiquetas o una cadena que contenía un punto y coma? ¿Fue address.city alguna vez un objeto, o la clave siempre fue literalmente "address.city"? Un conversor puede adivinar, pero el CSV no lo recuerda. La regla de oro: guarda el JSON como tu fuente de verdad y genera el CSV cuando necesites la vista de tabla. El almacenamiento es barato. Derivar la forma de nuevo no lo es.
¿Qué formato deberías usar?
Elige JSON cuando los datos tienen forma o el público es un programa. Datos que van a o desde una API, una app o una base de datos. Registros anidados o irregulares donde las filas no se parecen entre sí. Valores cuyos tipos deben sobrevivir, como precios como números y banderas como booleanos. Registros, configuraciones y todo lo que procesará código. Si puede que necesites la estructura de vuelta más tarde, JSON es el único hogar seguro.
Elige CSV cuando un humano o una herramienta con forma de tabla es el público. Alguien lo abrirá en Excel o Google Sheets. Estás enviando datos por correo a un colega no técnico. La herramienta destino espera filas y columnas: paneles de BI, asistentes de importación, cargadores de listas de correo. Los datos son genuinamente planos, y quieres el archivo más pequeño: medido en la máquina de compilación, 1.000 filas uniformes de clientes ocuparon 111.433 bytes en JSON pero solo 48.473 bytes en CSV, menos de la mitad del tamaño, porque JSON repite cada nombre de clave en cada fila. Para datos anidados la comparación se rompe, ya que CSV no puede contener anidado sin trucos, pero para tablas planas CSV gana en tamaño siempre.
La combinación práctica en la que aterriza la mayoría de los equipos: guarda e intercambia JSON, exporta CSV bajo demanda. Conserva el original rico; genera la copia de trabajo plana cuando alguien la necesite. El conversor de esta página existe exactamente para ese segundo paso, y nuestra guía de métodos cubre las tres formas fiables de hacerlo: el conversor en línea, Power Query de Excel y Python.
Cómo pasar de un formato al otro
De JSON a CSV es el viaje para el que está construida esta página: pega o sube tu JSON en el conversor en la parte superior de esta página, sin registrarte, y la conversión se ejecuta por completo en tu navegador para que tus datos nunca salgan de tu máquina. Para trabajo repetible o con scripts, nuestra guía de conversión muestra el mismo trabajo en Power Query de Excel y en Python.
De CSV a JSON es el viaje de vuelta, y viene con la advertencia honesta de la sección anterior: los tipos tienen que adivinarse en el camino de vuelta, porque el CSV nunca los guardó. Nuestra guía inversa cubre la conversión y muestra dónde pueden fallar las suposiciones, para que puedas revisarlas en lugar de confiar en ellas.
Guías relacionadas
- Cómo convertir JSON a CSV: 3 métodos fiables (guía 2026)
- Cómo aplanar JSON a CSV: qué hace realmente esa opción (Guía 2026)
- Cómo convertir CSV a JSON: 3 métodos fiables (guía 2026)
- What Does Flattening a JSON Mean? Qué significa el término, explicado (Guía 2026)
- What is JSON to CSV online: qué significa y cómo funciona (Guía 2026)
- What is JSON to CSV converter online: anatomía de la herramienta (Guía 2026)
- Convert JSON to CSV locally: convierte JSON a CSV en tu propio equipo, sin subir el archivo (Guía 2026)
- ¿Cuáles son las formas de convertir JSON a CSV localmente? 6 métodos comparados (Guía 2026)
- El archivo CSV se abre en una sola columna en Excel: por qué pasa y cómo corregirlo (Guía 2026)
- Por qué tu CSV muestra caracteres extraños en Excel y cómo corregir la codificación (Guía 2026)
- Por qué Excel elimina los ceros a la izquierda de tus códigos CSV y cómo conservarlos (Guía 2026)
- Por qué Excel cambia las fechas de tu CSV e intercambia el día y el mes, y cómo evitarlo (Guía 2026)
- Por qué guardar tu CSV en Excel lo cambia y cómo mantener el original a salvo (Guía 2026)
- Por qué tu CSV es demasiado grande para Excel y qué hacer en su lugar (Guía 2026)
Preguntas frecuentes
¿Es JSON lo mismo que CSV?
No. JSON guarda datos anidados con tipos como objetos y arrays; CSV guarda tablas planas como filas de texto. Resuelven problemas distintos: JSON es para datos estructurados que intercambian los programas, CSV es para tablas que los humanos abren en hojas de cálculo. Se convierten entre sí constantemente, y por eso ambos formatos se niegan a morir.
¿Puede un archivo CSV contener datos anidados como JSON?
No de forma nativa. Un CSV tiene filas y columnas y nada más profundo, así que el anidado debe aplanarse (un objeto address se convierte en columnas address.city y address.state) o empaquetarse en una sola celda como texto JSON. Ambos trucos pierden la forma original, y por eso conservas el JSON cuando el anidado importa. Nuestra guía de aplanado muestra exactamente qué hace el interruptor de aplanado con los datos anidados.
¿Convertir JSON a CSV pierde datos?
Pierde la forma, no los valores. Cada valor hoja sobrevive como texto, pero los tipos colapsan (números y booleanos se convierten en texto), el anidado se aplana en columnas con notación de punto, las claves duplicadas conservan solo el último valor, y null y las listas vacías se convierten en celdas vacías. Para una hoja de cálculo o una importación, no falta nada de lo que necesitas. Para volver a JSON, conserva el archivo original.
¿Qué pesa menos, un archivo JSON o un archivo CSV?
Para datos planos y uniformes, CSV suele ser mucho más pequeño. Medido en la máquina de compilación: 1.000 filas de clientes ocuparon 111.433 bytes en JSON pero solo 48.473 bytes en CSV, menos de la mitad del tamaño, porque JSON repite cada nombre de clave en cada fila. Para datos anidados la comparación se rompe, ya que CSV no puede contener anidado sin duplicarlo o serializarlo. Elige por la forma, no por el tamaño.
¿Puede Excel abrir un archivo JSON?
No directamente como hoja de cálculo. Las rutas fiables son: convertir el JSON a CSV primero y abrir eso, o usar Power Query (Datos > Obtener datos > Desde archivo > Desde JSON), que importa JSON a Excel correctamente. Nuestra guía de conversión de archivos muestra paso a paso la ruta de Power Query.
¿JSON es legible para humanos?
Sí, es texto plano, y un JSON pequeño con formato legible se lee bien. La legibilidad colapsa con el tamaño y la profundidad: una exportación minificada de una sola línea es técnicamente legible y prácticamente hostil. Para archivos grandes, dale formato legible primero con un formateador, o conviértelo a CSV y revisa la tabla en su lugar.
¿Por qué las APIs devuelven JSON en lugar de CSV?
Porque los datos de una API rara vez son una tabla plana. Las respuestas se anidan (un usuario tiene una dirección, que tiene coordenadas), mezclan tipos (números, booleanos, nulos) y varían por registro, todo cosas que JSON maneja y CSV no puede. CSV brilla cuando los datos ya son una tabla y el público es un humano; JSON brilla cuando los datos tienen forma y el público es un programa.
Convierte JSON a CSV en una pestaña
Ahora que conoces ambos formatos, convierte entre ellos aquí: pega JSON, descarga CSV. Gratis, sin registro, todo se ejecuta en tu navegador.
Abrir el conversor de JSON a CSV