Cookies de estadística y publicidad
Usamos cookies de estadística y de publicidad, y ambas van a Google. Si rechazas, para ti no cambia nada visible.Ir a la página de privacidad
Aquí puedes convertir JSON a TSV gratis y sin cuenta: suelta el archivo arriba y en un par de segundos tienes el resultado listo para descargar. La conversión ocurre en tu propio navegador, así que el archivo no se sube nunca. Funciona igual en Windows, macOS y Linux que en iPhone y Android, y sigue funcionando aunque cortes la conexión.
Hasta 100 archivos a la vez. Mezclar formatos no es problema.
Se convierten uno tras otro y vuelven juntos en un ZIP.
JSON a TSV
Aquí la coma es el separador decimal. Eso significa que un archivo delimitado por comas está peleando en dos frentes a la vez: contra las comas que hay dentro del texto —direcciones, descripciones de producto, observaciones— y contra las que hay dentro de los números. Excel en español lo resuelve exportando con punto y coma, con lo que la extensión sigue diciendo `.csv` y el contenido ya no es lo que la otra herramienta esperaba.
El tabulador no aparece prácticamente nunca dentro de un dato real. Nadie escribe un tabulador en un campo de dirección o en una caja de comentarios, porque en casi cualquier interfaz esa tecla mueve el foco en lugar de escribir. Ése es todo el argumento y para un trabajo puntual es un argumento fuerte: el separador que no está en tus datos no hay que protegerlo de nada.
Tanto Excel como Google Sheets leen de forma nativa texto separado por tabuladores desde el portapapeles. Copias la salida, haces clic en una celda, pegas, y los datos caen en columnas sin diálogo, sin pregunta de delimitador y sin asistente de importación. Un CSV pegado de la misma manera llega como una sola columna de texto por fila, y por eso la gente acaba aquí.
Es la vía más rápida entre una exportación JSON y algo que se pueda ordenar y filtrar, y conviene ser honesto sobre cuándo es la vía equivocada. Si el archivo se va a guardar, a enviar a alguien o a importar de forma repetida, mejor un CSV o un libro de verdad: el portapapeles es una comodidad, no un mecanismo de entrega, y los datos pegados no dejan ningún rastro de dónde vinieron.
Cada registro del array se convierte en una fila y las columnas salen de las claves. Los registros no tienen que coincidir entre sí: la conversión reúne la unión de todas las claves que aparecen en el archivo y deja la celda vacía donde un registro no tiene nada, de modo que una exportación en la que algunas entradas llevan un campo opcional se convierte sin que se pierda ninguna.
Esa reconciliación explica una sorpresa frecuente. Convertir los diez primeros registros como prueba puede dar menos columnas que convertir la exportación entera, porque en la muestra no estaban los campos raros. Si falta una columna que esperabas, casi siempre es que ningún registro del archivo la tenía, cosa que ya es información en sí misma.
Las respuestas de una API rara vez devuelven un array pelado. Devuelven un objeto con una clave —`results`, `data`, `items`— cuyo valor es el array que te interesa. La conversión reconoce esa forma: un objeto con exactamente una clave que contiene un array se desenvuelve, y los registros de dentro pasan a ser las filas.
Un objeto con dos claves no se desenvuelve, porque no hay manera de saber cuál de las dos son los datos y cuál el cursor de paginación. En ese caso el objeto entero se convierte en una única fila con nombres de columna con puntos, que se ve mal y es justo la señal para borrar el envoltorio en un editor de texto y volver a convertir.
JSON es un árbol y una tabla es una cuadrícula, así que el anidamiento tiene que ir a alguna parte. Va a los nombres de columna: un registro con un objeto `cliente` que contiene `ciudad` produce una columna llamada `cliente.ciudad`. Un nivel de anidamiento da una tabla que cualquiera puede leer, y dos suele seguir siendo aceptable.
A partir de ahí degenera deprisa. Los nombres se alargan, la tabla se vuelve muy ancha y la mayoría de las celdas quedan vacías porque cada registro anida a su manera. Sesenta columnas salidas de lo que parecía una exportación sencilla no son un fallo: son la forma real de los datos asomando, y es un momento razonable para decidir que ese JSON debería seguir siendo JSON.
Un registro con tres etiquetas produce tres columnas llamadas `etiquetas.0`, `etiquetas.1` y `etiquetas.2`. Es honesto, conserva todos los valores y es una tabla mala: el siguiente registro con cinco etiquetas añade dos columnas más, y ordenar por «la segunda etiqueta» no significa nada.
Cuando el array es lo que lleva el sentido —un pedido con sus líneas, una publicación con sus comentarios— la respuesta útil son dos tablas unidas por un identificador, tal como lo guardaría una base de datos. Cuando es accesorio, unir los valores en una sola cadena dentro del JSON antes de convertir da una hoja mucho más manejable que una fila de columnas numeradas.
Que el tabulador no aparece en los datos es cierto casi siempre y no siempre del todo. Texto copiado de un PDF, un fragmento de código pegado en un campo de observaciones o cualquier cosa que venga de otra hoja de cálculo pueden traerlo. Un salto de línea dentro de un valor es todavía más frecuente.
Cuando ocurre, el valor sale entre comillas dobles, que es el escape estándar y lo lee bien cualquier herramienta que importe un archivo. Donde peor se comporta es precisamente en el portapapeles, porque el pegado varía entre aplicaciones y versiones. Si sabes que tus datos llevan texto libre con saltos de línea, descarga el archivo y usa la ruta de importación en vez de pegar.
Ésta es la pérdida más cara y la que más se ve en datos españoles. Los códigos postales de Álava empiezan por 01, los de Almería por 04 y los de Barcelona por 08; los números de DNI se escriben con ceros delante muy a menudo; muchas referencias de artículo y de cuenta también. La hoja de cálculo infiere un tipo por columna al pegar, decide que eso es un número y se lleva el cero por delante sin avisar.
La misma inferencia convierte en fecha cualquier cosa con forma de fecha, así que `3-1` se transforma en el tres de enero y una referencia larga aparece en notación científica. El archivo llega bien y el daño ocurre después, así que la defensa está en el destino: formatea como texto las columnas delicadas antes de pegar, o usa una importación donde se pueda declarar el tipo de cada columna. La conversión no puede evitarlo porque el valor ya era correcto al llegar.
En JSON el separador decimal es el punto, siempre, porque así lo define el formato. La conversión escribe los números tal como estaban, de modo que un importe llega como `1234.5` y no como `1.234,5`. Los booleanos se escriben en minúsculas y un nulo se convierte en una celda vacía.
Al pegar en una hoja configurada en español, un número con punto decimal puede acabar interpretado como texto, o peor, como fecha. Merece la pena mirar una fila antes de dar por buena la tabla: si los importes aparecen alineados a la izquierda, no son números todavía. La solución limpia es importar declarando el separador decimal, y la rápida es reemplazar puntos por comas en la columna una vez pegada.
El portapapeles es un público del TSV; el otro es el software que espera tabuladores por defecto. La orden COPY de PostgreSQL usa el tabulador como delimitador estándar, `read.delim` en R también, y hay una larga cola de herramientas de bioinformática y de procesamiento de registros que aceptan entrada separada por tabuladores y ninguna otra cosa.
Para ésas la salida ya está lista, con una salvedad que conviene comprobar: las líneas terminan con un salto de línea simple y no con retorno de carro más salto, que es lo que esperan las herramientas de tradición Unix y lo que a algún importador exclusivo de Windows le sienta mal. Si un cargador se queja del final de línea, arreglarlo es una pasada por un editor de texto.
El análisis y la escritura ocurren en esta pestaña. No se sube nada, no hay registro ni cupo diario, y el límite gratuito es de 100 MB por archivo, con el techo práctico puesto por la memoria de tu equipo, porque hay que leer el array entero antes de poder escribir la primera fila.
En este par eso vale más de lo que suena. Una exportación JSON es casi siempre salida cruda de una API —clientes, histórico de pedidos, envíos de formularios— y suele contener campos en los que nadie pensó porque nadie esperaba que se leyeran. Meterla en una hoja de cálculo sin que pase por el servidor de nadie es la forma sencilla de no tener que pensar en ello.
| JSON | TSV | |
|---|---|---|
| Nombre completo | JavaScript Object Notation | Tab-Separated Values |
| Extensión de archivo | .json | .tsv, .tab |
| Tipo de medio | application/json | text/tab-separated-values |
| Publicado por primera vez | 2001 | 1993 |
| Especificación | RFC 8259 | IANA text/tab-separated-values |
| Licencia | Estándar abierto | Estándar abierto |
| Situación actual | Vigente | Vigente |
| Se abre en el navegador | Todos los navegadores | Ningún navegador |
| Considerado en su lugar | XML, YAML, NDJSON | CSV |
Ningún navegador lee TSV. Es el menos portátil de los dos, así que conviene asegurarse de que el destinatario lo acepta antes de enviarlo.
Los programas de siempre no coinciden: JSON se abre en Visual Studio Code, jq y Postman, y TSV en Microsoft Excel, LibreOffice Calc y pandas, así que quien reciba el resultado necesita alguno del segundo grupo.
JSON se publicó en 2001. Está recogido en RFC 8259, y conviene conocerlo si el archivo tiene que sobrevivir a la herramienta que lo escribió.
TSV es de 1993, recogido en IANA text/tab-separated-values. Microsoft Excel, LibreOffice Calc y pandas lo leen.
No. Esta conversión ocurre por completo en tu navegador, así que el archivo no sale de tu dispositivo. Puedes comprobarlo tú: abre la pestaña de red de las herramientas de desarrollo y convierte algo. Verás la propia página y las peticiones de estadística y publicidad con las que se paga este servicio, y ni una sola que lleve tu archivo.
Sí. Sin cuenta, sin marca de agua y sin cupo diario que se gaste: se ejecuta en tu propio equipo, así que puedes volver tantas veces como quieras. El navegador procesa archivos de hasta 100 MB, 100 a la vez.
JSON y TSV describen el contenido de maneras radicalmente distintas. La conversión es por tanto una reconstrucción y no una copia: fiel, pero no idéntica byte a byte. Los objetos anidados se aplanan en columnas. Los datos muy anidados pierden su forma.
Ningún navegador lee TSV. Es el menos portátil de los dos, así que conviene asegurarse de que el destinatario lo acepta antes de enviarlo.