Convertidor JSON a CSV, YAML y TSV
Convierte JSON↔CSV, JSON↔YAML/TOML y CSV↔TSV
Convierte JSON↔CSV, JSON↔YAML/TOML y CSV↔TSV
Todo se convierte en tu navegador; nada se sube a un servidor. Los objetos anidados se aplanan/restauran con notación de puntos, y los números, true/false y null se infieren automáticamente.
Cargando…
Procesando…
0.0
No se ha bloqueado: el resultado aparecerá cuando termine el cálculo.
Acerca de Convertidor JSON a CSV, YAML y TSV
Este conversor mueve datos entre formatos tabulares y de configuración. La pestaña JSON ↔ CSV aplana un array de objetos en una tabla o reconstruye los objetos a partir de ella. La pestaña CSV ↔ TSV cambia texto separado por comas por texto separado por tabuladores. La pestaña JSON ↔ YAML ↔ TOML convierte entre los tres formatos de configuración más habituales. En todos los casos pegas el texto, obtienes el resultado al instante y lo copias.
Lo difícil casi nunca es la sintaxis, sino el momento en que un valor cambia sin que nadie lo note: un código postal pierde el cero inicial, Excel muestra un CSV con caracteres rotos, una lista de países en YAML convierte Noruega en false. Aquí se explican las reglas de cada formato y cómo trata la herramienta esos puntos.
CSV tiene menos reglas de lo que parece (RFC 4180)
Lo más parecido a una especificación de CSV es el RFC 4180, de 2005, y es breve. Los registros se separan con saltos de línea (CRLF) y los campos con comas. Un campo que contiene una coma, una comilla doble o un salto de línea se encierra entre comillas dobles, y una comilla dentro de ese campo se escribe dos veces (""). El propio RFC aclara que documenta un formato de uso común y no define un estándar, por eso cada programa interpreta los detalles a su manera.
Al escribir CSV, esta herramienta solo entrecomilla los campos que lo necesitan y termina las líneas con CRLF. Al leer, acepta CRLF y LF y trata los saltos de línea dentro de comillas como parte del campo. En la pestaña CSV ↔ TSV, además, avisa si una comilla no se cierra o si una fila tiene un número de columnas distinto al de la cabecera.
El punto y coma de Excel en español
En España y en buena parte de Latinoamérica la coma es el separador decimal (3,14). Por eso Excel, con la configuración regional en español, suele guardar y esperar los «CSV» con punto y coma como separador de lista: nombre;precio;cantidad. Esta herramienta lo tiene en cuenta: con el separador en «Detección automática», al leer un CSV detecta el punto y coma en la línea de encabezado, y al escribir CSV puedes elegir «Punto y coma (;)» para que Excel en español lo abra en columnas.
Al revés: un CSV con comas generado aquí puede abrirse en un Excel en español con todo en la columna A. En ese caso, impórtalo con Datos → Desde el texto/CSV y elige la coma como delimitador.
Tildes y eñes rotas: el BOM
Casi todo CSV generado en la web es UTF-8. Excel para Windows, al abrir un CSV con doble clic, solo lo interpreta como UTF-8 si empieza con una marca de orden de bytes (BOM, los bytes EF BB BF). Sin ella, lo lee con la página de códigos heredada del sistema (Windows-1252 en español) y «José Muñoz» aparece como «José Muñoz». El artículo de soporte de Microsoft propone dos soluciones: guardar el CSV como UTF-8 con BOM, o importarlo desde Datos → Desde el texto/CSV eligiendo como origen «65001: Unicode (UTF-8)».
Si descargas el resultado de JSON → CSV con el botón «.csv (UTF-8 con BOM, para Excel)», el archivo lleva BOM y Excel lo abre bien con doble clic. El texto copiado y la descarga «.csv» normal no llevan BOM; si lo guardas en un editor para usuarios de Excel, elige «UTF-8 con BOM». Y al revés: un archivo que Excel guardó como «CSV UTF-8» empieza con BOM; al convertir CSV a JSON la herramienta lo elimina, así que ese carácter invisible no queda pegado al nombre de la primera columna.
JSON ↔ CSV: anidación, arrays y tipos
CSV es una cuadrícula plana, así que los objetos anidados se aplanan: {"dir": {"ciudad": "Madrid"}} se convierte en la columna dir.ciudad y, de vuelta, los nombres de columna se dividen por los puntos para reconstruir la anidación. Los arrays no se expanden en columnas: se guardan en una sola celda como texto JSON, por ejemplo ["a","b"]. Si los objetos tienen claves distintas, la cabecera reúne todas y los huecos quedan vacíos.
CSV no tiene tipos. Al pasar de CSV a JSON, la herramienta los deduce: lo que parece número pasa a número, true o false exactos a booleano, y las celdas vacías o con null a null. Un número con cero inicial, como 08001, se mantiene como texto porque casi siempre es un código postal o un identificador; Excel, en cambio, lo convierte en 8001. Otros casos: 1e3 se lee como notación científica y queda en 1000, TRUE en mayúsculas sigue siendo texto, y como CSV no distingue cadena vacía de valor ausente, "" vuelve como null. Ojo también con los decimales con coma: 3,14 dentro de un campo entrecomillado sigue siendo texto, no número.
CSV ↔ TSV
TSV es lo que obtienes al copiar celdas de Excel o de Google Sheets. No hay forma estándar de representar un tabulador o un salto de línea dentro de un campo, así que la herramienta los escribe como \t y \n (y la barra invertida como \\) para mantener cada registro en una línea, y los restaura al volver a CSV. Si un TSV escrito a mano contiene los dos caracteres \n, se leerán como salto de línea.
YAML: el problema de Noruega, 1.1 y 1.2
YAML 1.1 trataba yes, no, on, off, y y n como booleanos. El ejemplo clásico es una lista de códigos de país donde Noruega, escrita NO sin comillas, se convierte en false; y 22:30 se leía como un número en base 60, 1350. YAML 1.2 (2009) redujo los booleanos del esquema principal a true y false y eliminó la base 60, pero bibliotecas muy usadas como PyYAML siguen aplicando 1.1 por defecto.
El analizador YAML de esta herramienta se comporta como 1.2: NO, yes y 22:30 siguen siendo texto. Al escribir YAML desde JSON, entrecomilla las cadenas que un analizador 1.1 podría malinterpretar ("NO", "yes", "on") y las que parecen números ("3.10"). Un 3.10 sin comillas es un número y queda en 3.1; 012 pasa a 12. No admite anclas y alias (&, *), claves de fusión (<<) ni escalares de bloque (| y >), y lo indica con un error. TOML no tiene null, así que un null de JSON se convierte en cadena vacía; es una conversión con pérdida.
Ejemplos
JSON → CSV con comas, comillas, anidación y arrays
- Entrada
[{"id":1,"name":"Kim, Minjun","addr":{"city":"Seoul","zip":"04524"},"tags":["a","b"],"note":"He said \"hi\""},{"id":2,"name":"Lee","addr":{"city":"Busan"},"note":null}]- Resultado
id,name,addr.city,addr.zip,tags,note 1,"Kim, Minjun",Seoul,04524,"[""a"",""b""]","He said ""hi""" 2,Lee,Busan,,,
Solo se entrecomillan los campos con coma o comillas, y las comillas internas se duplican. El array va en una celda como JSON.
CSV → JSON: deducción de tipos
- Entrada
id,zip,phone,flag,addr.city 1,04524,010-1234-5678,true,Seoul 2,1e3,,TRUE,Busan- Resultado
[{"id":1,"zip":"04524","phone":"010-1234-5678","flag":true,"addr":{"city":"Seoul"}}, {"id":2,"zip":1000,"phone":null,"flag":"TRUE","addr":{"city":"Busan"}}]
04524 conserva el cero como texto, pero 1e3 pasa a 1000. La misma columna puede acabar con tipos distintos según la fila.
YAML → JSON: valores que YAML 1.1 habría cambiado
- Entrada
country: NO answer: yes version: 3.10 time: 22:30 zip: 012- Resultado
{"country": "NO", "answer": "yes", "version": 3.1, "time": "22:30", "zip": 12}
Con YAML 1.1, country y answer serían false y true, y time sería 1350. version y zip siguen siendo números: entrecomíllalos si necesitas "3.10" y "012".
Cómo se usa
- Elige pestaña: JSON ↔ CSV, CSV ↔ TSV o JSON ↔ YAML ↔ TOML.
- Selecciona la dirección y pega la entrada.
- Revisa los avisos (comilla sin cerrar, filas con distinto número de columnas, sintaxis YAML no admitida) y copia el resultado.
Preguntas frecuentes
¿Por qué mi CSV sale todo en una columna?
Probablemente tu Excel usa punto y coma como separador de lista. Al convertir JSON → CSV elige «Punto y coma (;)» como separador, o importa el archivo con Datos → Desde el texto/CSV eligiendo la coma.
¿Por qué veo «Ã©» en lugar de «é»?
El archivo es UTF-8 sin BOM y Excel lo leyó como Windows-1252. Desde esta herramienta, usa la descarga «.csv (UTF-8 con BOM, para Excel)». Si ya tienes el archivo, guárdalo como UTF-8 con BOM o impórtalo eligiendo 65001 (UTF-8).
¿Admite CSV separado por punto y coma?
Sí. La detección automática reconoce punto y coma, coma o tabulador en la línea de encabezado, y también puedes elegir el separador a mano, tanto para leer como para escribir CSV.
¿yes/no es booleano en YAML?
En YAML 1.1 sí; en 1.2, no. La herramienta lee como 1.2 y, al escribir, entrecomilla esas cadenas para que ambas versiones las lean como texto.
Fuentes
- RFC 4180
- Soporte de Microsoft — Opening CSV UTF-8 files correctly in Excel
- Especificación YAML 1.2.2
- YAML 1.1, tipo bool
- TOML v1.0.0
Revisado el: