Herramientas
Guías

Conversor de JSON a CSV

JSON

Aplana un array de objetos JSON a CSV con comillado RFC 4180. Descarga el resultado como archivo.

100 % del lado del cliente Sin backend
Entrada
Salida
En esta página

¿Qué es un conversor de JSON a CSV?#

Un conversor de JSON a CSV toma un arreglo JSON de objetos —la forma en que la mayoría de APIs y bases de datos devuelven filas— y lo escribe como texto CSV, valores separados por comas. Cada objeto se convierte en una línea, cada clave de nivel superior en una columna, y la primera línea contiene los nombres de los campos. El resultado es texto plano que las hojas de cálculo, las herramientas de datos y las bases de datos importan directamente.

El CSV parece trivial hasta que tienes que producirlo correctamente. El formato que de verdad funciona en todas partes es RFC 4180: los campos que contienen una coma, unas comillas dobles o un salto de línea deben envolverse entre comillas dobles, y cualquier comilla doble ya presente en el campo debe duplicarse (""). Las líneas se separan con CRLF, no con un salto de línea simple. Equivócate en cualquiera de esos puntos y un nombre como Smith, John o un valor como He said "hi" corrompe las columnas en silencio aguas abajo: la hoja de cálculo ve una columna extra o trunca un campo.

Este conversor gestiona todo eso por ti y además lidia con el hecho incómodo de que JSON es jerárquico y CSV es plano: los objetos anidados se aplanan en columnas con notación de punto (address.city), y los campos en forma de array u objeto que no se pueden aplanar se serializan como texto JSON dentro de su celda. Además tú eliges el delimitador —coma, punto y coma, tabulador o barra vertical— porque «CSV» significa cosas distintas según la configuración regional.

Cómo usarlo#

  1. Pega un arreglo JSON de objetos en el panel de Entrada a la izquierda. También se aceptan un objeto suelto, o un objeto que envuelva las filas bajo una única clave como {"data": [...]}.
  2. Elige el Delimitador, (por defecto), ;, Tab o |. El punto y coma es lo que muchas configuraciones regionales europeas esperan de Excel; el tabulador produce TSV.
  3. Marca Aplanar anidados (activo por defecto) para expandir los objetos anidados en columnas con notación de punto. Desmárcalo para conservar los objetos anidados como texto JSON en una sola celda.
  4. El CSV aparece en vivo en el panel de Salida, con comillado aplicado donde un campo lo necesita. La línea de estado indica el número de filas.
  5. Pulsa Descargar para guardar data.csv, o Copiar para llevar el texto al portapapeles.
  6. Ejemplo carga un pequeño conjunto de datos de dos filas; Limpiar vacía ambos paneles.

Características principales#

  • Comillado RFC 4180. Los campos se envuelven y las comillas internas se duplican exactamente cuando la especificación lo exige, de modo que las comas, las comillas y los saltos de línea dentro de los valores nunca rompen la estructura de columnas.
  • Finales de línea CRLF. La salida usa saltos de línea estilo Windows, lo que maximiza la compatibilidad con Excel y otro software de hojas de cálculo en cualquier plataforma.
  • Elección de delimitador. Coma, punto y coma, tabulador o barra vertical: elige el que espere tu herramienta aguas abajo, y el comillado se adapta al delimitador elegido.
  • Aplanamiento con notación de punto. Los objetos anidados se expanden en columnas con nombre para que sus campos internos puedan sobrevivir por su cuenta; los arrays y los objetos rebeldes se convierten en celdas de texto JSON en lugar de descartarse.
  • Columnas estables con filas irregulares. La cabecera es la unión de las claves de todas las filas en orden de primera aparición, así que las filas con campos extra o ausentes siguen alineándose correctamente.

Ejemplo detallado#

Carga Ejemplo y la entrada es un arreglo de dos filas:

[
  { "name": "Ada Lovelace", "role": "Engineer", "skills": ["math", "logic"] },
  { "name": "Bob",          "role": "PM",       "skills": ["docs"] }
]

Con el delimitador en , y Aplanar anidados activo, las columnas son name, role, skills. El campo skills es un array, así que se serializa a texto JSON; como ese texto contiene comas y comillas dobles, se entrecomilla y sus comillas internas se duplican:

name,role,skills
Ada Lovelace,Engineer,"[""math"",""logic""]"
Bob,PM,"[""docs""]"

Fíjate en dos cosas que el conversor hizo en silencio y de forma correcta. Ada Lovelace no va entre comillas, porque solo contiene un espacio —ningún delimitador, ninguna comilla, ningún salto de línea—, así que envolverlo sería inútil. Y la celda skills de Ada va entre comillas con las comillas internas duplicadas, porque contiene tanto comas como caracteres " que de lo contrario corromperían la fila.

Cambia el Delimitador a ; y las comas dentro de la celda skills ya no chocan con el separador, pero el campo sigue entrecomillado por las comillas dobles incrustadas: el conversor entrecomilla siempre que aparece cualquier disparador de RFC 4180, no solo el delimitador.

Preguntas frecuentes#

¿Por qué las comillas dobles de mis datos se duplican a ""?#

Es la regla de RFC 4180 para incrustar una comilla doble literal dentro de un campo entrecomillado: escribirla dos veces. Un valor como He said "hi" se convierte en "He said ""hi""" en el CSV: las comillas exteriores envuelven el campo (porque contiene un "), y cada " interior se duplica para que el analizador sepa que es dato, no el final del campo. Las herramientas que leen CSV correctamente restaurarán las comillas simples originales al importar.

Mi campo contiene una coma. ¿Romperá las columnas?#

No. Cualquier campo que contenga el delimitador, una comilla doble, un retorno de carro o un salto de línea se envuelve automáticamente entre comillas dobles, así que un valor como Smith, John se convierte en "Smith, John" y se queda en una sola columna. No tienes que escapar nada a mano.

¿Por qué elegiría punto y coma o tabulador en vez de coma?#

Por la configuración regional. Excel en muchas configuraciones europeas usa ; como separador de lista por defecto, así que un archivo separado por comas se abre con todo amontonado en una sola columna hasta que lo reimportas. El separado por tabuladores (TSV) es lo más seguro cuando tus datos pueden contener tanto comas como puntos y coma: los tabuladores prácticamente nunca aparecen en valores reales. Elige el que espere tu herramienta aguas abajo.

¿Qué pasa con un objeto anidado o un campo en forma de array?#

Con Aplanar anidados activo, un objeto anidado se expande en columnas con notación de punto (address.city, address.zip), así que cada valor interno obtiene su propia columna. Un campo en forma de array no se puede aplanar en columnas sin pérdidas, así que se serializa como texto JSON dentro de su celda —por ejemplo ["math","logic"]. No se descarta nada; si prefieres cada elemento del array en su propia fila, reestructura el JSON antes.