Convertir JSON a CSV

Aquí puedes convertir JSON a CSV gratis y sin cuenta: suelta el archivo arriba y en un par de segundos tienes el resultado listo para descargar. La conversión ocurre en tu propio navegador, así que el archivo no se sube nunca. Funciona igual en Windows, macOS y Linux que en iPhone y Android, y sigue funcionando aunque cortes la conexión.

  • Dónde se ejecuta En tu navegador. El archivo no se sube.
  • Reconstruido CSV funciona de otra manera que JSON. No es la degradación gradual de un códec con pérdida: lo que CSV puede expresar se reproduce fielmente, y lo que no tiene equivalente allí no sobrevive en absoluto.
  • Límite de tamaño Hasta 100 MB por archivo, gratis y sin cuenta.
  • Conviene saberlo Los objetos anidados se aplanan en columnas. Los datos muy anidados pierden su forma.

Hasta 100 archivos a la vez. Mezclar formatos no es problema.

Un árbol proyectado sobre una cuadrícula

Conviene entender esto antes de convertir nada. Un JSON describe un árbol: un objeto puede contener otro objeto, que puede contener una lista de objetos, hasta donde haga falta. Un CSV describe una cuadrícula: filas, columnas y nada dentro de una celda.

Así que esto no es traducir dos maneras de escribir lo mismo. Es proyectar, y algo tiene que ceder. Si los datos son de verdad una lista de registros planos —que es lo que son casi todas las exportaciones— no se pierde nada en absoluto. Si tienen estructura de verdad, el CSV es una aproximación legible y el JSON sigue siendo el archivo bueno.

Cómo se convierte lo anidado en nombres de columna

Un objeto dentro de otro se aplana uniendo los nombres con un punto: si cada registro lleva un `cliente` que a su vez lleva una `ciudad`, la columna resultante se llama `cliente.ciudad`. Las posiciones de una lista entran en ese mismo camino como números, de forma que el segundo teléfono aparece como `telefonos.1`.

Un nivel de anidamiento produce una tabla que cualquiera lee. Dos suele seguir siendo manejable. A partir de ahí se degrada deprisa: nombres larguísimos, tablas muy anchas y la mayoría de las celdas vacías porque cada registro anida a su manera. Si de una exportación aparentemente sencilla salen sesenta columnas, eso es la forma real de los datos asomando, no un fallo de la conversión.

El punto y coma que espera tu Excel

Aquí se escribe un CSV separado por comas, que es lo que dice el nombre del formato y lo que espera casi cualquier programa. Y en un Windows configurado en español, Excel abre ese archivo y mete toda la fila en la primera columna, porque en la configuración regional española el separador de listas es el punto y coma: la coma está ocupada haciendo de separador decimal.

La solución no es cambiar el archivo, que está bien, sino la forma de abrirlo: Datos, y luego «Obtener datos» o «Desde texto/CSV», eligiendo la coma como delimitador. Ese camino sirve además para lo siguiente, porque es donde se puede fijar el tipo de cada columna antes de cargarla.

Los números que llegaron con punto y la fecha que no era fecha

Los valores numéricos del JSON se escriben con punto decimal, porque eso es lo que significa un número en JSON. Excel en español lee `3.5` con separador de miles y lo interpreta como treinta y cinco, o como texto, según le parezca. Es la segunda mitad del mismo problema regional y por el mismo motivo.

A eso se suma lo de siempre: los códigos postales que empiezan por cero pierden el cero, un DNI o una referencia larga se convierte en coma flotante y se le va la última cifra, y cualquier cosa con pinta de fecha se convierte en fecha con el criterio del sistema. Importar en lugar de abrir, y marcar como texto las columnas que son identificadores, evita las cuatro cosas de una vez.

Las listas dentro de un registro son el caso realmente difícil

Un pedido con cuatro líneas, una entrada con tres etiquetas o una ficha con varias direcciones anteriores no tiene una representación correcta en una tabla. Aquí se resuelve por el camino descrito arriba —una columna por posición, `lineas.0`, `lineas.1`, y así— y ese camino se rompe en cuanto un registro tiene cinco elementos y otro tiene uno.

Cuando las listas son el contenido y no un adorno, la respuesta honesta es no convertir. O te quedas con el JSON, o produces dos tablas como haría una base de datos: una de pedidos y otra de líneas, unidas por un identificador. Un CSV con `lineas.0.precio` hasta `lineas.11.precio` es técnicamente válido y no lo va a usar nadie.

De dónde salen las columnas cuando los registros no coinciden

Los registros de una exportación no están obligados a tener las mismas claves. Una API devuelve los campos que existen y omite los que no, así que cien registros pueden presentar ochenta formas distintas.

La conversión lo resuelve recorriendo todos los registros y quedándose con la unión de las claves, en el orden en que aparecen por primera vez, y dejando vacía la celda del registro que no tenía ese valor. Eso explica una sorpresa frecuente: convertir una muestra de diez registros da menos columnas que convertir el archivo entero, sencillamente porque la muestra no contenía los campos raros.

Comillas, saltos de línea y direcciones con coma

Un valor que contiene una coma, una comilla o un salto de línea se escribe entre comillas dobles, y una comilla dentro de él se duplica. Bien hecho, una celda puede contener un párrafo entero. Aquí se escribe así siempre que hace falta, de modo que el CSV que baja está bien formado.

El riesgo está en lo que venga después. Una dirección como «Calle Mayor 4, 3º B» ocupa una celda entrecomillada perfectamente correcta, y un script casero que parta la línea por comas la romperá en dos columnas y desplazará el resto de la fila. Si el destino es un programa propio, que lea el CSV con una biblioteca de verdad y no con un `split`.

Cuándo convertir y cuándo dejarlo estar

Convierte cuando los datos son registros planos y el destino es una hoja de cálculo, una importación a base de datos, una herramienta estadística o una persona. Eso cubre casi todo lo que exportan las plataformas de analítica, los CRM, los formularios y los paneles de facturación, y el CSV les resulta más cómodo que el JSON a todos ellos.

No conviertas cuando la estructura es el contenido: un archivo de configuración, una respuesta de API que vas a recorrer con código, cualquier cosa con listas que signifiquen algo. Y guarda el JSON en los dos casos, porque es el archivo que sigue conteniéndolo todo y volver a generar el CSV cuesta segundos.

Exportaciones grandes y el límite que existe

Un array JSON tiene que estar completo para poder analizarse, porque lo que lo hace válido es el corchete de cierre. Así que un archivo grande hay que leerlo entero, y eso es una propiedad del formato antes que de ninguna herramienta.

El límite libre son 100 MB por archivo, y se pueden soltar hasta cien archivos de una vez. Eso no cambia con NDJSON: aquí también se lee el archivo entero antes de convertir, sea un array o un objeto por línea. Lo que NDJSON aporta es otra cosa, y sigue siendo una razón real para pedirlo si controlas el volcado: cada línea se analiza por separado, así que la línea concreta que esté mal falla con su propio número y dieciocho mil líneas correctas no se pierden por una que llegó truncada, al contrario que un array JSON, que tiene que estar completo y ser válido de un extremo a otro para analizarse.

Acentos, eñes y los tres bytes invisibles

El JSON es UTF-8 por definición y el CSV que sale de aquí también, así que las tildes, las eñes y los signos de apertura sobreviven intactos. El punto delicado vuelve a estar en Excel para Windows, que históricamente ha supuesto una página de códigos regional cuando abre un archivo de texto.

El apaño habitual —escribir una marca de orden de bytes al principio para avisar de que el archivo es UTF-8— tiene su propia víctima: muchos analizadores ven esos tres bytes como parte del primer nombre de columna y una comparación contra `id` falla sin explicar por qué. Importar desde el asistente de Excel eligiendo UTF-8 resuelve el asunto sin ensuciar el archivo para el resto del mundo.

La exportación no sale de tu equipo

La conversión ocurre en tu navegador, sobre tu procesador. El archivo no se transmite, no hay cuenta ni cupo diario, y la pestaña de red durante una conversión lo confirma sin necesidad de creer una frase.

Aquí eso pesa más que en otras conversiones. Un JSON exportado suele ser la salida cruda de una API: fichas de clientes, historiales de pedidos, envíos de formularios, cuentas de usuario, y con frecuencia campos que nadie revisó porque nadie esperaba que se leyeran. En datos personales de clientes españoles o latinoamericanos, no enviarlos a ninguna parte es la respuesta corta a una conversación larga con el responsable de protección de datos.

Cómo convertir JSON a CSV

  1. Suelta tu archivo JSON en esta página, o haz clic para elegir uno.
  2. Elige CSV como destino. La conversión ocurre en tu navegador y el archivo no se sube.
  3. Descarga el archivo CSV terminado.

JSON frente a CSV: qué cambia

JSON frente a CSV
JSONCSV
Nombre completoJavaScript Object NotationComma-Separated Values
Extensión de archivo.json.csv
Tipo de medioapplication/jsontext/csv
Publicado por primera vez20011972
EspecificaciónRFC 8259RFC 4180
LicenciaEstándar abiertoEstándar abierto
Situación actualVigenteVigente
Se abre en el navegadorTodos los navegadoresNingún navegador
Considerado en su lugarXML, YAML, NDJSONXLSX, Parquet

Abrir el resultado

Ningún navegador lee CSV. Es el menos portátil de los dos, así que conviene asegurarse de que el destinatario lo acepta antes de enviarlo.

Los programas de siempre no coinciden: JSON se abre en Visual Studio Code, jq y Postman, y CSV en Microsoft Excel, LibreOffice Calc y pandas, así que quien reciba el resultado necesita alguno del segundo grupo.

Para qué sirve cada formato

JSON se publicó en 2001. Está recogido en RFC 8259, y conviene conocerlo si el archivo tiene que sobrevivir a la herramienta que lo escribió.

CSV es de 1972, recogido en RFC 4180. Microsoft Excel, LibreOffice Calc y pandas lo leen.

CSV se publicó en 1972 y JSON en 2001. El más antiguo suele ser el archivo más seguro para entregar; el más reciente hace lo mismo con menos bytes.

De JSON a CSV: preguntas frecuentes

¿Se sube a algún sitio mi archivo JSON?

No. Esta conversión ocurre por completo en tu navegador, así que el archivo no sale de tu dispositivo. Puedes comprobarlo tú: abre la pestaña de red de las herramientas de desarrollo y convierte algo. Verás la propia página y las peticiones de estadística y publicidad con las que se paga este servicio, y ni una sola que lleve tu archivo.

¿Convertir JSON a CSV es gratis?

Sí. Sin cuenta, sin marca de agua y sin cupo diario que se gaste: se ejecuta en tu propio equipo, así que puedes volver tantas veces como quieras. El navegador procesa archivos de hasta 100 MB, 100 a la vez.

¿Se pierde calidad al convertir JSON a CSV?

JSON y CSV describen el contenido de maneras radicalmente distintas. La conversión es por tanto una reconstrucción y no una copia: fiel, pero no idéntica byte a byte. Los objetos anidados se aplanan en columnas. Los datos muy anidados pierden su forma.

¿Se abre un archivo CSV en el navegador?

Ningún navegador lee CSV. Es el menos portátil de los dos, así que conviene asegurarse de que el destinatario lo acepta antes de enviarlo.

Más sobre estos formatos