Convertidor de JSON a CSV
Convierte JSON a CSV en tu navegador. Presets RFC 4180, Excel-EU, TSV y Pipe. Aplana anidados o stringify. 100% privado, sin carga.
Opciones · , · auto · LF · header · no BOM · flatten
¿Qué es CSV y por qué convertir desde JSON?
CSV (Comma-Separated Values) es el formato tabular de datos más antiguo y ampliamente soportado en informática — todas las hojas de cálculo, todas las bases de datos, todas las herramientas analíticas y la mayoría de los lenguajes de programación tienen soporte CSV de primera clase. JSON, en cambio, es el formato universal para respuestas de API, configuración e intercambio de datos estructurados. Convertir entre ambos es una de las tareas más comunes en ingeniería de datos: recibes JSON de una API o de una base de datos NoSQL y necesitas un CSV para cargar en Excel para análisis, en una tabla de Postgres mediante COPY o en un almacén BigQuery / Snowflake. Esta herramienta está construida para esa ruta de conversión y gestiona cuatro escenarios que la mayoría de conversores online estropean.
Esta herramienta tiene cuatro diferenciadores importantes en comparación con los conversores online típicos:
**1. Parser de Máquina de Estados RFC 4180.** CSV parece sencillo, pero las reglas de entrecomillado son sutiles: un campo envuelto entre comillas dobles puede contener comas, saltos de línea incrustados y comillas dobles escapadas (duplicadas, como ""). Los parsers ingenuos basados en split-por-coma se rompen con datos reales — direcciones con comas, campos de texto multilínea y valores entrecomillados que contienen comillas. Esta herramienta implementa un parser de máquina de estados adecuado siguiendo RFC 4180 (la especificación del IETF para CSV), gestionando correctamente campos entrecomillados, delimitadores incrustados, finales de línea incrustados y comillas escapadas en ambas direcciones. La salida es reversible mediante el módulo csv de Python, PostgreSQL COPY, AWS S3 SELECT y cualquier parser conforme.
**2. Aplanar de Un Solo Sentido / Stringify Reversible.** El JSON anidado es fundamentalmente incompatible con la forma tabular plana del CSV, y la mayoría de conversores corrompen silenciosamente los datos al toparse con un objeto o array anidado. Esta herramienta te da una elección explícita: el modo Aplanar emite claves con puntos (customer.address.city) y claves indexadas (items.0.sku) para la disposición más limpia en una hoja de cálculo — legible en Excel pero con pérdidas en ida y vuelta. El modo Stringify mantiene arrays y objetos como JSON dentro de una sola celda — más feo pero totalmente reversible: CSV → JSON → CSV produce datos idénticos cuando se combina con Inferir tipos en la vuelta. Elige según tu objetivo: análisis en Excel (Aplanar) o ida y vuelta en pipeline (Stringify).
**3. Detección de Enteros Grandes.** El tipo Number de JavaScript usa precisión doble IEEE 754 y redondea silenciosamente los enteros por encima de 2^53 - 1 (9007199254740991). Esto golpea al JSON real: los IDs snowflake de Twitter, los IDs de Discord, los campos Long de MongoDB y resourceVersion de Kubernetes son todos enteros de 64 bits que exceden el rango seguro. La mayoría de herramientas JSON basadas en navegador producen silenciosamente números incorrectos sin avisar. Esta herramienta detecta los valores enteros grandes durante el análisis, muestra un aviso listando los campos afectados y preserva los dígitos originales como cadenas en la salida CSV para que Excel y Google Sheets no los trunquen a notación científica.
**4. Privacidad 100% en el Navegador.** Tus datos JSON — que a menudo contienen PII de usuarios, exportaciones internas de bases de datos, claves de API incrustadas en payloads y secretos de producción — nunca salen de tu navegador. No se envían datos a ningún servidor, sin registro, sin analítica que capture la entrada. Puedes verificarlo en la pestaña Red de tu navegador. Esta es la única forma segura de manejar datos sensibles en una herramienta online. Mira la dirección inversa haciendo clic en Invertir o usa nuestro Convertidor JSON a YAML complementario cuando tu objetivo sea YAML. ¿Necesitas validar JSON antes de convertir? Prueba nuestro Formateador JSON.
Los puntos fuertes de CSV son la universalidad y la simplicidad: cualquier herramienta lo lee, los parsers son diminutos y el formato es legible por humanos en cualquier editor de texto. Sus debilidades son la falta de información de tipos (todo es una cadena hasta que le digas al parser lo contrario), la ausencia de soporte nativo para estructuras anidadas y las peculiaridades específicas de configuración regional (puntos y coma de Excel-EU, CRLF de Windows vs LF de Unix). Los puntos fuertes de JSON son exactamente los opuestos: tipos precisos, anidamiento nativo y una especificación estricta que se analiza de forma idéntica en todas partes. La herramienta correcta depende del consumidor: humano leyendo una hoja de cálculo → CSV, máquina consumiendo una API → JSON. Este conversor cubre el puente en ambas direcciones.
// Input JSON
[
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "editor" }
]
// Output CSV (RFC 4180 preset: comma + CRLF + no BOM)
id,name,role
1,Alice,admin
2,Bob,editor
// Same input with Stringify mode + nested data
[
{ "id": 1, "tags": ["a", "b"] }
]
// Becomes
id,tags
1,"[""a"",""b""]" Características principales
Conforme a RFC 4180
Parser estricto de máquina de estados siguiendo la especificación CSV del IETF: gestión correcta de campos entrecomillados, delimitadores incrustados, CR/LF incrustados y comillas dobles escapadas (duplicadas). La salida hace ida y vuelta limpiamente a través del csv de Python, PostgreSQL COPY y AWS S3 SELECT.
Presets Excel, TSV y Pipe
Presets de un solo clic para los cuatro destinos más comunes: RFC 4180 (coma + CRLF), Excel (punto y coma + CRLF + BOM UTF-8 para configuraciones EU), TSV (Tab + LF) y Pipe (| + LF). Cambia entre formatos sin ajustar manualmente cinco opciones por separado.
Aplanar o Stringify Datos Anidados
Gestión explícita de anidados: Aplanar emite claves con puntos (customer.address.city) para un análisis limpio en hojas de cálculo, Stringify mantiene arrays y objetos como JSON dentro de una celda para ida y vuelta sin pérdidas. Elige según necesites análisis en Excel o ida y vuelta en pipeline.
Detección de Enteros Grandes
Los enteros por encima de 2^53 se detectan durante el análisis y se preservan como cadenas en el CSV — los IDs de Twitter, los snowflakes de Discord, los campos Long de MongoDB y resourceVersion de K8s permanecen exactos en lugar de ser redondeados silenciosamente por el tipo Number IEEE 754 de JavaScript.
Detección Automática de NDJSON
El JSON delimitado por líneas (.ndjson, .jsonl) se detecta automáticamente — pega logs en streaming, exportaciones de eventos de API o salidas de data lake directamente sin envolverlos manualmente en un array. Cada línea se convierte en una fila del CSV.
Bidireccional con Invertir
Un botón de Invertir dirección cambia la conversión sobre la marcha: la entrada se convierte en CSV, la salida en JSON, el texto actual se preserva. Haz ida y vuelta con tus datos en ambas direcciones para verificar la conversión sin pérdidas antes de enviarla a un pipeline.
Ejemplos
Respuesta de API REST
[{"id":1,"name":"Alice Chen","email":"alice@example.com","role":"admin"},{"id":2,"name":"Bob Garcia","email":"bob@example.com","role":"editor"},{"id":3,"name":"Carol Singh","email":"carol@example.com","role":"viewer"},{"id":4,"name":"Dan Müller","email":"dan@example.com","role":"viewer"}] Salida típica de una API. Con la cabecera activada obtienes un CSV tabular limpio y listo para Excel.
API de Issues de GitHub
[{"id":1001,"title":"Bug: login redirects to 404","state":"open","labels":["bug","priority:high"],"user":{"login":"alice"}},{"id":1002,"title":"Feature: dark mode toggle","state":"open","labels":["enhancement"],"user":{"login":"bob"}},{"id":1003,"title":"Docs: update README","state":"closed","labels":["docs","good-first-issue"],"user":{"login":"carol"}}] Extraído de /repos/{owner}/{repo}/issues. Con Aplanar y Cabecera activadas, expone user.login como columna aplanada.
MongoDB mongoexport
[{"_id":{"$oid":"6634a1b2c3d4e5f600000001"},"email":"alice@example.com","metadata":{"signupDate":"2026-01-15T10:30:00Z","preferences":{"newsletter":true,"theme":"dark"}}},{"_id":{"$oid":"6634a1b2c3d4e5f600000002"},"email":"bob@example.com","metadata":{"signupDate":"2026-02-20T14:15:00Z","preferences":{"newsletter":false,"theme":"light"}}}] Forma típica de exportación de Mongo. Elige el modo Stringify si planeas hacer ida y vuelta CSV→JSON.
Log de Eventos NDJSON
{"event":"signup","user":"alice","ts":1715000000}
{"event":"login","user":"alice","ts":1715000060}
{"event":"checkout","user":"alice","ts":1715000300} El JSON delimitado por líneas (.ndjson/.jsonl) se detecta automáticamente — pega el contenido del archivo directamente.
Pedidos de E-commerce Anidados
[{"id":"ord-001","customer":{"name":"Alice Chen","email":"alice@example.com","address":{"city":"Seattle","country":"US"}},"items":[{"sku":"SKU-100","qty":2},{"sku":"SKU-205","qty":1}]},{"id":"ord-002","customer":{"name":"Bob Garcia","email":"bob@example.com","address":{"city":"Madrid","country":"ES"}},"items":[{"sku":"SKU-100","qty":1}]}] El modo Aplanar emite claves con puntos (customer.address.city, items.0.sku). Cambia a Stringify para mantener arrays/objetos como JSON en una sola celda.
Resultados de Tests de Postman
[{"name":"GET /users returns 200","status":"pass","duration":142},{"name":"POST /users creates record","status":"pass","duration":287},{"name":"GET /users/999 returns 404","status":"fail","duration":98,"error":"Expected 404, got 500"},{"name":"DELETE /users/1 returns 204","status":"pass","duration":156}] Exportación de tests de Postman/Newman. Las filas con forma mixta (algunas con error) se rellenan con celdas vacías — verás un aviso en las notas de esquema.
Cómo usar
- 1
Pega tu JSON
Introduce o pega tu JSON en el campo de entrada de arriba. La herramienta acepta arrays de objetos, objetos individuales y NDJSON (JSON delimitado por líneas) — detección automática. También puedes hacer clic en 'Cargar ejemplo' para probar una muestra como una respuesta de API REST, una exportación de MongoDB o un log de eventos NDJSON.
- 2
Elige un preset (o ajusta Opciones)
Haz clic en RFC 4180 (predeterminado), Excel (punto y coma EU + BOM), TSV (Tab) o Pipe para fijar un formato de destino con un solo clic. Abre el panel de Opciones para un control fino: Delimitador, Cabecera, Comillas (Auto/Siempre), Final de línea (LF/CRLF), BOM y Anidado (Aplanar/Stringify).
- 3
Copia o Descarga el CSV
Haz clic en Copiar para llevar el CSV al portapapeles o en Descargar para guardarlo como archivo .csv (.tsv con el preset TSV) listo para Excel, Google Sheets, PostgreSQL COPY o cualquier pipeline de datos. Para ida y vuelta, haz clic en Invertir dirección para convertir CSV a JSON en el mismo lugar.
Errores comunes de conversión
El valor de nivel superior es un primitivo
CSV es fundamentalmente tabular — filas de campos. Un solo número, cadena o booleano no tiene estructura de filas/columnas sobre la que proyectarse. El valor JSON de nivel superior debe ser un objeto (tabla de una fila) o un array (tabla de múltiples filas). Envuelve un primitivo en un objeto o array primero.
42
[{"value": 42}] Array de Forma Mixta (filas con claves diferentes)
Cuando las filas en un array JSON tienen claves diferentes (algunas tienen un campo error, otras no), la herramienta une todas las claves entre todas las filas y rellena las celdas faltantes con valores vacíos. Aparece un aviso en las notas de esquema para que sepas que las columnas se han fusionado. Esto suele estar bien, pero verifica la salida si las herramientas posteriores esperan un esquema estricto.
[
{"name": "GET /users", "status": "pass"},
{"name": "GET /users/999", "status": "fail", "error": "500"}
] // Output CSV (note empty cell in row 1) name,status,error GET /users,pass, GET /users/999,fail,500
Entero Grande Truncado por Excel
Los IDs snowflake de Twitter, los IDs de Discord y otros enteros de 64 bits exceden el rango seguro de JavaScript (2^53 - 1) y pierden precisión cuando JSON.parse() los lee. Aunque el CSV preserve los dígitos, Excel los mostrará en notación científica por defecto. La solución es doble: almacena los IDs como cadenas en tu JSON antes de convertir y activa BOM (o usa el preset Excel) para que Excel preserve la celda como texto.
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost) {"id": "9007199254740993"}
// CSV preserves the string; Excel displays exactly Coma Incrustada Sin Entrecomillar
Si construyes CSV a mano con un join(',') ingenuo, cualquier campo que contenga una coma (Smith, Jr. o 1,234.56) romperá los límites de columna — el parser ve columnas extra donde debería haber una. El modo Comillas Auto de esta herramienta sigue RFC 4180 y envuelve automáticamente entre comillas dobles cualquier campo que contenga el delimitador, comillas dobles, CR o LF.
name,role Smith, Jr.,admin // Parser reads 3 columns: "Smith", " Jr.", "admin"
name,role "Smith, Jr.",admin // Parser reads 2 columns: "Smith, Jr.", "admin"
Archivo Excel-EU Ilegible como CSV-Coma
Las configuraciones regionales europeas de Excel (Alemania, Francia, España, Italia, etc.) reservan la coma para el separador decimal y usan punto y coma como delimitador de campo. Un CSV-coma estándar se abre con todas las filas colapsadas en la columna A. La solución es el preset Excel: cambia a ; + CRLF + BOM UTF-8 para que Excel analice correctamente el archivo en cualquier configuración regional.
id,name,price 1,Alice,1,234.56 // Excel-EU mis-parses 1,234.56 as two columns
// Excel preset output: ; + CRLF + BOM id;name;price 1;Alice;1234,56 // Excel-EU reads cleanly with comma decimal
NDJSON No Detectado (forma de la entrada)
La detección automática de NDJSON requiere un valor JSON válido por línea, sin corchetes de array iniciales o finales. Si pegas un array JSON de arrays, o tu archivo tiene un [ inicial y un ] final, la herramienta lo trata como un único valor JSON, no como NDJSON. Elimina los corchetes envolventes y asegúrate de que cada línea sea un objeto JSON autocontenido.
[
{"event": "signup"},
{"event": "login"}
]
// Detected as a regular JSON array (works, but not NDJSON path) {"event": "signup"}
{"event": "login"}
// Each line is one JSON value — auto-detected as NDJSON Casos de uso comunes
- Respuesta de API a Hoja de Cálculo
- Pega una respuesta de API REST (array de objetos de usuario/pedido/evento) y obtén un CSV tabular limpio listo para Excel, Google Sheets o Numbers. El caso de uso más común — analistas y PMs necesitan datos con forma de hoja de cálculo, los ingenieros entregan JSON desde el backend.
- Exportación de MongoDB a Almacén de Datos
- Convierte la salida JSON de mongoexport (con envoltorios $oid y documentos de metadata anidados) en CSV para cargar en BigQuery, Snowflake o Redshift. El modo Stringify preserva la forma anidada sin pérdidas cuando las herramientas posteriores soportan JSON-en-celda.
- Triaje de Issues de GitHub
- Extrae issues de /repos/{owner}/{repo}/issues, pega el JSON y obtén un CSV plano con id, title, state, labels y user.login como columnas. Cárgalo en Sheets para filtrar, ordenar y asignar durante la planificación del sprint.
- Revisión de Logs de Eventos NDJSON
- Los logs en streaming de Cloud Logging, Datadog, Vector o tu propio pipeline a menudo llegan como NDJSON (.ndjson, .jsonl). Pega el contenido del archivo directamente — detección automática — y obtén un CSV para análisis ad hoc sin montar un pipeline ETL real.
- Extracción de Pedidos de E-commerce
- Convierte JSON de pedidos anidados (customer.address.city, array items) en un CSV plano para finanzas, fulfillment o revisión de fraude. El modo Aplanar produce una columna por campo hoja, listo para cargar en Excel para informes ad hoc.
- Informe de Tests de Postman/Newman
- Las exportaciones de tests de Postman incluyen filas con forma mixta (algunas con campos error opcionales). Pega el JSON, obtén un CSV con todas las claves unidas y las celdas faltantes rellenadas — perfecto para compartir informes de tests fallidos con personas no técnicas en Sheets.
Detalles técnicos
- Parser de Máquina de Estados RFC 4180
- Ambas direcciones usan un parser de máquina de estados finita adecuado siguiendo RFC 4180. Los estados incluyen UnquotedField, QuotedField, AfterQuote, RowEnd y EndOfInput. El parser gestiona correctamente campos entrecomillados que contienen el delimitador, CR/LF incrustados dentro de campos entrecomillados, comillas dobles escapadas (duplicadas, como "") y saltos de línea finales. Esto produce una salida que hace ida y vuelta sin pérdidas a través del módulo csv de Python, PostgreSQL COPY, AWS S3 SELECT y cualquier parser conforme.
- Algoritmo de Detección de Enteros Grandes
- Antes de pasar el JSON por JSON.parse() (que redondearía silenciosamente los enteros grandes mediante IEEE 754), la herramienta ejecuta un escaneo regex sobre el texto JSON crudo buscando literales enteros fuera del rango seguro (-2^53+1 a 2^53-1). Cuando se detectan, las rutas de campo afectadas se registran y aparece un aviso de Entero grande debajo de la salida. El escritor CSV preserva entonces estos valores como cadenas, garantizando precisión exacta a través de Excel, Google Sheets y cualquier consumidor posterior consciente del texto.
- BOM y Codificación UTF-8 para Excel
- Toda la entrada y salida es UTF-8. El BOM UTF-8 opcional (0xEF 0xBB 0xBF) se antepone a la salida cuando el conmutador BOM está activado o cuando se selecciona el preset Excel. Excel en Windows usa el BOM para detectar la codificación UTF-8 — sin él, Excel recurre a la configuración regional del sistema (Windows-1252 en EE. UU., Windows-1251 en Rusia, etc.) y corrompe los caracteres no ASCII. Los parsers modernos (csv de Python, Pandas, jq, PostgreSQL) generalmente no necesitan el BOM y pueden incluirlo como un carácter espurio al inicio de la primera celda, así que deja BOM desactivado para pipelines que no sean Excel.
Buenas prácticas
- Elige un Preset Antes de Ajustar Opciones
- Los presets RFC 4180, Excel, TSV y Pipe ajustan cinco opciones a la vez (delimitador, final de línea, modo de comillas, BOM, cabecera). Elige primero el preset más cercano y luego ajusta opciones individuales solo si es necesario — esto evita el error común de cambiar una opción y olvidar otra (por ejemplo, cambiar a punto y coma pero dejar LF, lo que Excel-EU en Windows sigue analizando mal).
- Aplanar para Análisis, Stringify para Ida y Vuelta
- Usa Aplanar cuando el destino sea Excel, Sheets o un análisis puntual — las claves con puntos producen la disposición más limpia en hoja de cálculo. Usa Stringify cuando necesites un viaje CSV → JSON → CSV sin pérdida de datos — los arrays y objetos sobreviven como JSON dentro de una sola celda. Cambiar a mitad de exportación y volver a ejecutar es barato; elige según el consumidor.
- Usa BOM Solo para Excel
- El BOM UTF-8 es necesario para que Excel en Windows detecte la codificación correctamente. El resto de parsers (csv de Python, Pandas, jq, PostgreSQL COPY, BigQuery) o ignoran el BOM o lo incluyen como un carácter espurio al inicio de la primera celda, rompiendo los nombres de columna. Deja el BOM desactivado para pipelines y actívalo (o usa el preset Excel) solo cuando el destino sea Excel.
- Mantén los IDs Grandes como Cadenas en JSON
- Los IDs snowflake de Twitter, los IDs de Discord, los campos Long de MongoDB y resourceVersion de K8s son enteros de 64 bits que exceden el rango seguro de JavaScript (2^53 - 1). Almacénalos como cadenas JSON ("id": "9007199254740993") antes de convertir — el CSV preservará los dígitos exactamente, mientras que un literal numérico sería redondeado silenciosamente por JSON.parse().
- Valida la Forma de las Filas Antes de Cargar
- Las filas con forma mixta (algunos objetos con claves que otros no tienen) se fusionan con celdas vacías en la salida y la herramienta muestra un aviso en las notas de esquema. Para consumidores con esquema estricto (BigQuery, Redshift COPY), valida que todas las filas compartan las mismas claves antes de exportar — o gestiona los valores faltantes explícitamente en tu pipeline. Usa nuestro Formateador JSON para inspeccionar primero la forma de la entrada.
Preguntas frecuentes
¿Qué hace esta herramienta?
¿Se sube mi información a algún sitio?
¿Cuál es la diferencia entre los modos Aplanar y Stringify?
¿Cómo gestiona enteros grandes como IDs de Twitter o claves Snowflake?
¿Por qué Excel muestra mi CSV en una sola columna?
¿Soporta NDJSON o JSON Lines?
¿Qué es RFC 4180?
¿Por qué algunas celdas están entre comillas y otras no?
¿Puedo hacer ida y vuelta CSV → JSON → CSV sin pérdida de datos?
¿Cómo obtengo un archivo TSV?
¿Qué ocurre con entradas muy grandes?
¿Qué codificaciones se soportan?
Herramientas relacionadas
Ver todas las herramientas →Decodificador y Codificador Base64
Codificación y Formato
Decodifica y codifica Base64 online de forma gratuita. Conversión en tiempo real con soporte completo de UTF-8 y emojis. 100% privado — funciona en tu navegador. Sin registro.
Convertidor de CSV a JSON
Codificación y Formato
Convierte CSV a JSON en tu navegador. RFC 4180, inferencia de tipos, fila de cabecera, seguro para big-int. 100% privado, sin carga.
JSON Diff (Comparar)
Codificación y Formato
Compara dos archivos JSON al instante en tu navegador. Resaltado lado a lado, salida RFC 6902 JSON Patch, ignora campos ruidosos como marcas de tiempo e IDs. 100% privado, sin carga.
Formateador y Validador JSON
Codificación y Formato
Formatea, valida y embellece JSON al instante en tu navegador. Herramienta gratuita con validación sintáctica, detección de errores, minificación y copia con un clic. 100% privado.
Validador JSON Schema
Codificación y Formato
Valida JSON contra cualquier JSON Schema al instante en tu navegador. Compatible con Draft 2020-12, 2019-09 y Draft-07 con mensajes de error con ruta precisa. 100% privado, sin carga, sin cuenta, gratis.
Convertidor JSON a YAML
Codificación y Formato
Convierte JSON a YAML al instante en tu navegador. Listo para K8s y Compose, sangría 2/4 espacios, protección Norway automática. 100% privado, sin carga.