Conversor de JSON a CSV

Convierte arreglos JSON de objetos al formato CSV o TSV.

Cómo usar

1. Pega un array JSON de objetos (o un único objeto) en la zona de entrada.

2. Elige tu separador · coma para CSV, tabulación para TSV u otro formato.

3. Haz clic en Convertir para generar la salida CSV.

4. Copia al portapapeles o descarga como archivo.

Los objetos y arrays anidados se serializan como cadenas JSON en la salida CSV. Todo el procesamiento es del lado del cliente · tus datos nunca salen de tu navegador.

Por qué la conversión JSON-a-CSV es un flujo de trabajo tan habitual

JSON es el formato de carga útil dominante para las API web modernas; CSV es el formato de mínimo común denominador para datos tabulares. Excel, Google Sheets, SQL LOAD DATA, R, Pandas, Tableau, Power BI y casi todo pipeline ETL ingieren CSV de fábrica. Así que cuando la salida de una API tiene que aterrizar en una hoja de cálculo para un interlocutor, o en una base de datos para análisis, alguien tiene que aplanar el JSON en filas. Esta herramienta hace ese aplanado en tu navegador, sin ida y vuelta al servidor y sin subir datos potencialmente sensibles.

El formato CSV (RFC 4180)

No existe una única norma CSV formal, pero la RFC 4180 (octubre de 2005, «Common Format and MIME Type for Comma-Separated Values (CSV) Files») es lo más cercano a una referencia canónica que tiene la industria. Las reglas en las que todos coinciden:

Por qué cuatro delimitadores en lugar de uno

El defecto es la coma, pero cada delimitador resuelve un problema específico:

Aplanar JSON anidado: tres estrategias

JSON es jerárquico; CSV es plano. No hay un mapeo de propósito general sin pérdidas entre ambos. Cuando la entrada contiene objetos o arrays anidados, todo conversor tiene que elegir:

  1. Incrustar como cadena JSON. La parte anidada se reserializa a JSON y se coloca en una sola celda CSV. Enfoque por defecto de esta herramienta. Sin pérdidas; ida-y-vuelta segura; el consumidor necesita parsear el JSON interno si quiere la estructura.
  2. Aplanado con claves punteadas. {address: {street, city}} pasa a columnas address.street y address.city. El json_normalize de Pandas hace esto. Más limpio para analistas, pero el número de columnas explota con datos muy anidados.
  3. Explosión de filas. Un array pasa a varias filas, con los campos padre repetidos. {name: "Alice", tags: ["a", "b"]} pasa a dos filas, ambas con name=Alice. Lo mejor para relaciones uno-a-muchos; pierde el modelo mental «un registro por fila».

Si necesitas salida con claves punteadas o filas explotadas, preprocesa el JSON antes de pegarlo, ya sea con un pequeño script Python/Node o con el json_normalize de Pandas.

Cabeceras, ida y vuelta de tipos y la trampa de auto-formato de Excel

JSON tiene un sistema de tipos real (número, cadena, booleano, null, array, objeto); CSV solo tiene cadenas. La convención es que el consumidor infiera tipos por contexto. La herramienta genera filas de cabecera con la unión de todas las claves de todos los objetos de entrada, deja los campos ausentes como celdas vacías, escribe los booleanos como true/false y escribe el null JSON como celda vacía.

Excel «ayuda» de formas que a veces hacen daño:

Inyección CSV, una nota de seguridad útil

Si un CSV va a abrirse en Excel o Google Sheets, una celda que empieza con =, +, - o @ se interpreta como fórmula. La página de CSV Injection de OWASP documenta la clase de ataque, una cadena maliciosa como =cmd|' /c calc'!A0 en un campo enviado por usuario puede ejecutar comandos cuando un administrador abre el export. Práctica defensiva: prefija toda celda que empiece por uno de esos cuatro caracteres con una comilla simple, o envuélvela en comillas con apóstrofe delante. Importante si exportas contenido generado por usuarios.

Casos límite habituales gestionados

Cuándo usar esta herramienta

Privacidad

Los exports CSV casi siempre contienen PII, registros de clientes, datos de empleados, logs de transacciones, listas de contactos. La conversión en servidor envía cada registro por la infraestructura de un tercero, donde vive en logs de tránsito, logs de servidor y posiblemente caches. La conversión basada en navegador mantiene los datos en tu máquina. Todo el paso de aplanar y entrecomillar sucede aquí en JavaScript dentro de tu navegador; nada se sube.

Errores comunes

  1. Delimitador equivocado para el público. Enviar un CSV con comas a un usuario de Excel francés produce un archivo de una sola columna. Iguala el delimitador a la locale del destinatario.
  2. Pegar un objeto único en lugar de un array. Un objeto único se convierte en CSV de una fila con cabeceras a partir de las claves. Para varios registros, envuélvelos en un array.
  3. Esperar aplanado al estilo Pandas. Los objetos anidados en esta herramienta se serializan como cadenas JSON dentro de las celdas. Si quieres columnas address.street, aplana antes.
  4. Usar CSV para números muy grandes. JSON representa de forma segura enteros hasta 253−1 (~9 cuatrillones de escala corta). Más allá, transmite como cadena. Excel estropeará los IDs numéricos largos incluso cuando el CSV los preserve.
  5. Abrir en Excel sin pensar en la codificación. Los caracteres no ASCII necesitan BOM UTF-8 para Excel en Windows; Google Sheets y el Excel moderno para web no lo necesitan.
  6. Exportar texto generado por usuario sin sanear prefijos de fórmula. Las celdas que empiezan por =, +, - o @ son fórmulas en Excel y Sheets. La inyección CSV es un ataque real contra los administradores que abren archivos exportados.

Preguntas frecuentes

Mi JSON tiene objetos anidados. ¿Cómo se gestionan?

Cada objeto o array anidado se serializa como cadena JSON dentro de su celda CSV. Así {user: {name: "Alice", role: "admin"}} pasa a una columna user con {"name":"Alice","role":"admin"}. Esto hace ida y vuelta sin pérdidas. Si quieres columnas user.name y user.role separadas, preprocesa con json_normalize de Pandas o un pequeño script de aplanado.

¿Por qué mis caracteres no ingleses se ven mal en Excel?

Excel en Windows abre CSV en Windows-1252 por defecto. Un CSV UTF-8 sin Byte Order Mark se ve como mojibake (é → é). Solución: o guardar el archivo con BOM UTF-8, o usar el asistente Datos → Desde texto de Excel y seleccionar explícitamente UTF-8, o abrirlo en Google Sheets, que gestiona UTF-8 sin BOM correctamente.

¿La herramienta gestiona las comas dentro de los campos?

Sí. Según la RFC 4180, los campos que contienen el delimitador, saltos de línea o comillas dobles se entrecomillan automáticamente. Las comillas dobles internas se escapan duplicándolas. Así San Francisco, CA pasa a "San Francisco, CA" y She said "hi" pasa a "She said ""hi""".

¿Se envía mi JSON a un servidor?

No. La conversión corre íntegramente en tu navegador. El contenido del área de texto no se transmite, registra ni almacena en ningún sitio. Importa porque los registros exportados contienen a menudo PII, datos de clientes, información de empleados, historiales de transacciones, que no quieres que pase por la infraestructura de otra persona.

¿Puedo obtener salida separada por tabulaciones (TSV)?

Sí, elige «Tab» en el desplegable de delimitador. TSV es la opción adecuada cuando tus datos contienen comas (direcciones, campos de texto libre, datos financieros con separadores de miles) y no quieres entrecomillar una de cada dos celdas. Muchos formatos de bioinformática y de datos científicos son TSV por defecto.

¿Cuál es el límite de tamaño?

Lo que pueda manejar tu navegador. No hay límite de servidor porque no hay servidor. Decenas de megabytes de JSON se convierten en uno o dos segundos en un equipo moderno; cargas de cientos de megabytes empiezan a ralentizarse. Para conjuntos muy grandes, divídelos por lotes o pasa a un conversor en streaming en línea de comandos.

Herramientas relacionadas