Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
Aqui você converte TSV para JSON de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.
Até 100 arquivos de uma vez. Formatos misturados não são problema.
Eles são convertidos um após o outro e baixados juntos em um ZIP.
TSV para JSON
Ferramentas recorrem à tabulação quando os dados estão cheios de vírgula e ninguém quer lidar com aspas. Cliente de banco de dados imprime resultado de consulta com tabulação. Navegador de genoma e tabela de expressão gênica usam por convenção. Plataforma de anúncio e console de análise exportam assim porque nome de campanha e título de página estão cheios de pontuação.
Essa escolha compra confiabilidade contra vírgula e abre mão de quase tudo o mais. O arquivo não tem tipo, não tem aninhamento, não tem jeito de marcar uma coluna como identificador, e nenhuma defesa contra uma tabulação aparecendo dentro de um valor. É um bom formato de transporte e uma coisa pobre para computar em cima, motivo pelo qual a primeira coisa que qualquer um faz com um é converter.
A linha de cabeçalho fornece as chaves, e toda linha seguinte vira um objeto. O resultado é um array JSON — a forma que um script, um notebook e quase toda biblioteca presumem quando dizem "os dados".
Nada é embrulhado em torno disso e nada é indexado por uma coluna de ID, porque fazer qualquer um dos dois exige saber qual coluna é o identificador, e essa não é uma decisão que um conversor pode tomar por você. Um array presume o mínimo, e transformar isso numa busca indexada por qualquer campo é uma linha na linguagem que você já está escrevendo.
Um arquivo separado por tabulação não tem escape aceito para uma tabulação dentro de um campo, e uma quebra de linha dentro de um é pior: a linha termina onde o valor deveria continuar. Os dois acontecem na prática, geralmente numa coluna de observação ou anotação onde alguém colou texto.
No JSON são caracteres comuns. Uma tabulação é escrita como `\t` dentro da string e uma quebra de linha como `\n`, e nenhum dos dois consegue afetar a estrutura do documento, porque a estrutura é expressa por chaves e colchetes, não pelos caracteres nos dados. Este é o motivo mais forte para converter um arquivo separado por tabulação bagunçado em vez de continuar processando como texto.
Um cabeçalho `Símbolo do gene` vira a chave `Símbolo do gene`, espaços e tudo. Nada é renomeado ou convertido para outro estilo, porque um conversor que reescrevesse silenciosamente seus nomes de coluna tornaria a saída impossível de reconciliar com a origem.
Isso tem consequência onde você usa. Uma chave com espaço não é válida na maioria das linguagens sem colchetes e aspas. Se o JSON vai entrar num código que será mantido, renomear as chaves uma vez — no cabeçalho antes de converter, ou numa única passagem depois — vale fazer deliberadamente. Duas colunas compartilhando um cabeçalho é o caso a observar: chaves de objeto são únicas, então a última vence e a anterior se perde sem aviso.
JSON distingue 7 de "7" e um arquivo separado por tabulação não, então o interpretador infere. Número vira número, verdadeiro e falso viram booleano, e o resto continua string. Para quantidade, contagem e preço isso está exatamente certo.
Para identificador é destruição. Um valor `00123` vira `123`, um código de peça escrito em notação parecida com científica vira o número que ele se parece, e uma vez que o JSON guarda um número não sobra nada para recuperar o texto original. A regra prática é se somar dois valores da coluna significaria alguma coisa; se não significasse, a coluna é um identificador e deveria continuar string. Confira essas colunas na saída antes de construir qualquer coisa em cima.
A conversão frequentemente é o primeiro passo para ler um arquivo que ninguém documentou, e JSON torna isso rápido. Um comando `jq` dá a contagem de linhas sem o cabeçalho confundir, lista as colunas como o interpretador as viu, e mostra todo valor distinto numa coluna, o que é como você encontra o valor-sentinela que estava arruinando silenciosamente um campo numérico.
Isso vale fazer em qualquer coluna que você esperava ser numérica e que voltou como string. O motivo quase sempre é um punhado de linhas carregando algo como "NA" ou um traço, e saber qual marcador a origem usou é mais útil do que qualquer quantidade de chute sobre o esquema.
Um espaço entre duas tabulações é escrito como `null`. Vale dizer isso claramente, porque qualquer coisa consumindo o JSON vai tratar `null` e string vazia de forma diferente: um esquema declarando tipo string vai recusar `null`.
A origem não consegue te dizer qual era a intenção. Um arquivo delimitado tem um jeito só de escrever "nada aqui" e usa isso tanto para um valor em branco quanto para um campo que não se aplica. Se essa distinção importa, ela precisa existir no arquivo antes da conversão, e nenhum conversor consegue inventá-la depois.
As chaves vêm da linha de cabeçalho e toda linha posterior é comparada contra ela, então uma tabela onde uma coluna extra começa a aparecer depois de dez mil linhas não ganha uma chave para ela. Os valores excedentes ficam juntos numa chave especial, como um array, exatamente nos registros que os carregam. Linhas faltando um campo simplesmente não carregam essa chave.
Isso é mais comum do que deveria em exportações montadas de várias execuções, e é a falha que um leitor posicional lida pior — um divisor ingênuo desloca todo valor depois da coluna faltante e produz linhas que parecem certas e não estão. Ter o arquivo como objetos torna a inconsistência visível.
Espere o arquivo crescer. Todo registro repete toda chave, toda string fica entre aspas, e a pontuação de um objeto é acrescentada ao redor dos valores. Numa tabela larga com cabeçalhos longos e valores curtos, o JSON pode ficar várias vezes o tamanho da fonte separada por tabulação.
É um preço justo para um arquivo em que você vai computar em cima e pobre para um arquivo que você só precisa guardar. A saída também é formatada com indentação, o que a torna legível num editor e acrescenta mais bytes. Se o destino é armazenamento ou um fluxo em vez de um script, NDJSON ou Parquet é o destino melhor.
A interpretação e a serialização são JavaScript comum carregado por esta página, então nada é enviado, não existe fila nem conta. Isso importa para o tipo de arquivo que costuma ser este: uma tabela de referência sob embargo, um extrato de cliente, um conjunto de resultado não publicado.
O array é montado por completo antes de ser escrito, então a memória é o teto. Dezenas de megabytes é rotina e centenas é onde uma aba começa a sofrer — e nesse tamanho um único array JSON já é uma coisa estranha de trabalhar de qualquer forma, já que a maioria dos interpretadores insiste em guardar tudo. NDJSON é a forma que escala além desse ponto, e converte da mesma fonte.
| TSV | JSON | |
|---|---|---|
| Nome completo | Tab-Separated Values | JavaScript Object Notation |
| Extensão do arquivo | .tsv, .tab | .json |
| Tipo de mídia | text/tab-separated-values | application/json |
| Publicado pela primeira vez | 1993 | 2001 |
| Especificação | IANA text/tab-separated-values | RFC 8259 |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Atual |
| Abre no navegador | Nenhum navegador | Todos os navegadores |
| Considerado no lugar | CSV | XML, YAML, NDJSON |
Nada é descartado. TSV e JSON guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.
JSON abre em qualquer navegador atual. TSV alcança ainda menos navegadores. Se o arquivo vai para uma página web ou um formulário, esse costuma ser todo o motivo da conversão.
Os programas de sempre não se cruzam: TSV abre em Microsoft Excel, LibreOffice Calc e pandas, e JSON em Visual Studio Code, jq e Postman, então quem receber o resultado precisa de algum do segundo grupo.
TSV foi publicado em 1993. Está descrito em IANA text/tab-separated-values, e vale conhecer se o arquivo precisa sobreviver à ferramenta que o escreveu.
JSON e de 2001, descrito em RFC 8259. Visual Studio Code, jq e Postman leem o formato.
Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo.
É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez.
Não. JSON guarda o mesmo conteúdo sem jogar nada fora: o resultado é idêntico em qualidade ao original.
Nada é descartado. TSV e JSON guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.