← Volver a la herramienta JSON
JSON a CSV
Última actualización: 1 de octubre de 2026
Convierte un array de objetos JSON en una tabla CSV. Cada objeto es una fila, las claves son las columnas y los campos se citan como espera una hoja de cálculo. Todo ocurre en tu navegador: los datos no salen de la máquina.
Qué hace la conversión
Un archivo CSV es una tabla escrita en texto plano: una línea por fila, un delimitador entre celdas y una primera línea con los nombres de las columnas. JSON no tiene esa forma. El punto de encuentro natural es un array de objetos: cada objeto es un registro y sus claves son los nombres de los campos. Es exactamente la forma que devuelve una API para una lista, así que es lo primero que acepta este conversor.
Dado [{"id":1,"name":"Ada"},{"id":2,"name":"Grace"}], la salida es una línea de cabecera id,name y dos filas, 1,Ada y 2,Grace. Aparte de las reglas de abajo, no se reordena ni se reescribe ningún valor.
Qué formas de JSON se convierten en tabla
- Array de objetos: cada objeto es una fila; la cabecera es la unión de todas las claves.
- Array de arrays: se usa como filas tal cual, sin inferir cabecera, para datos que ya tienen forma.
- Un objeto suelto: se trata como una fila, con sus claves como cabecera.
- Array de valores: una sola columna sin nombre.
- Cualquier otra cosa: un número, una cadena o
nullsueltos no son una tabla y se informan como error en lugar de transformarse en silencio.
El detalle de la unión importa. Si algunos registros tienen la clave phone y otros no, la cabecera incluye phone y las filas que no la tienen dejan esa celda vacía: la columna no se descarta. La consecuencia clara es que un JSON de forma irregular produce una tabla con columnas dispersas.
Los valores anidados se vuelven texto
Una celda solo puede contener texto, así que un objeto o array anidado dentro de un valor se escribe como JSON compacto dentro de su celda. {"address":{"city":"London"}} se convierte en la celda {"city":"London"}. La información sobrevive, pero deja de estar estructurada: este conversor no aplana address.city en una columna con punto. Si quieres columnas con puntos, aplana el JSON antes; eso es una decisión de modelado, no de formato.
Comillas, delimitadores y fin de línea
La salida sigue RFC 4180, la regla en la que coinciden todas las hojas de cálculo y bibliotecas de CSV:
- Un campo se envuelve en comillas dobles solo cuando hace falta: si contiene el delimitador, una comilla doble, un salto de línea, o espacios al principio o al final.
- Dentro de un campo entrecomillado, una comilla doble se escribe dos veces, de modo que el texto se reproduce exactamente.
- Las filas terminan en CRLF, el par retorno de carro y salto de línea que indica la norma.
El delimitador lo eliges tú. La coma es lo predeterminado, pero el punto y coma es más seguro en sistemas cuyo separador decimal es la coma, porque un archivo delimitado por comas resulta ambiguo allí. El tabulador y la barra vertical sirven para datos que ya contienen comas.
Que Excel abra el archivo sin estropearlo
Excel no lee UTF-8 a ciegas: ante un .csv sin marca de orden de bytes, adivina la codificación y a menudo elige una página de códigos antigua, lo que convierte letras acentuadas y texto CJK en basura. La opción BOM para Excel antepone la marca UTF-8 de tres bytes al archivo descargado para que Excel lo decodifique bien. Se aplica solo a la descarga, así que el texto mostrado aquí queda limpio.
Lo que CSV no puede devolver
CSV es un formato de texto y tiene pérdidas. Olvida qué valores eran números, booleanos o null, y aplana el anidamiento a texto. Un null y una cadena vacía llegan ambos como una celda vacía, y un número llega como sus dígitos. Al volver a JSON obtienes cadenas salvo que actives la detección de tipos en la otra página, y aun así un código como 007 debe seguir siendo cadena para conservar sus ceros iniciales. Conserva el JSON original cuando los tipos importen; trata el CSV como la exportación, no como la copia maestra.
Preguntas frecuentes
¿Qué forma de JSON se puede convertir a CSV?
CSV es una tabla, así que la entrada natural es un array de objetos: cada objeto es una fila y sus claves son las columnas. Un array de arrays se usa como filas tal cual, un objeto suelto es una fila y un array de valores simples es una sola columna. Cualquier otra cosa——un número o una cadena sueltos, o null——no es una tabla y se rechaza.
¿Qué pasa cuando los objetos tienen claves distintas?
La cabecera es la unión de todas las claves que aparecen en el array, en orden de primera aparición. Una fila a la que le falta una de esas claves deja su celda vacía. Por eso un CSV hecho a partir de JSON de forma irregular puede tener columnas vacías en casi todas las filas.
¿Cómo se tratan los objetos y arrays anidados?
CSV no tiene anidamiento, así que un valor que es a su vez un objeto o un array se escribe como JSON compacto dentro de su celda. La información se conserva, pero deja de estar estructurada: esta conversión aplana convirtiendo a texto, no descompone las claves anidadas en columnas con puntos.
¿Cuándo se pone un campo entre comillas?
Un campo se pone entre comillas cuando contiene el delimitador, una comilla doble, un salto de línea, o espacios al principio o al final. Dentro de un campo entrecomillado, una comilla doble literal se escribe dos veces, de modo que el texto se reproduce exactamente. Esa es la regla de RFC 4180 y es lo que permite que una celda contenga una coma o un salto de línea.
¿Por qué mi CSV se ve como caracteres extraños en Excel?
Excel adivina la codificación de un archivo .csv y, sin marca de orden de bytes, a menudo elige una página de códigos antigua, lo que estropea el texto no ASCII, como letras acentuadas o caracteres CJK. Marcar la opción BOM antepone U+FEFF al archivo descargado para que Excel lo lea como UTF-8. El BOM se añade solo a la descarga, no al texto que se muestra aquí.
¿La conversión de JSON a CSV es sin pérdidas?
No. CSV guarda texto, así que olvida qué valores eran números, booleanos o null, y no puede representar el anidamiento salvo como texto. Al volver de CSV a JSON obtienes cadenas, salvo que actives la detección de tipos. Conserva el JSON original si necesitas recuperar los tipos con exactitud.
¿Quieres la dirección contraria? CSV a JSON lee una tabla y la devuelve como array de objetos. ¿Has encontrado un fallo? Escríbenos.