Converter JSON para TSV

Aqui você converte JSON para TSV 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.

  • Onde roda No seu navegador. O arquivo nunca é enviado.
  • Reconstruído TSV funciona de um jeito diferente de JSON. Não é a degradação gradual de um codec com perda: o que TSV consegue expressar é reproduzido fielmente, e o que não tem equivalente ali não sobrevive de jeito nenhum.
  • Limite de tamanho Até 100 MB por arquivo, de graça e sem conta.
  • Vale saber Objetos aninhados são achatados em colunas. Dados muito aninhados perdem a forma.

Até 100 arquivos de uma vez. Formatos misturados não são problema.

Escolha TSV em vez de CSV quando os próprios valores têm vírgula

A vírgula é o caractere mais comum em texto corrido depois do espaço, e um arquivo delimitado que a usa como separador precisa escapar todo valor que a contenha. O mecanismo funciona, e também é a origem de quase toda importação bagunçada que alguém já viu: uma aspa desbalanceada e o resto da linha cai nas colunas erradas.

Tabulações praticamente nunca aparecem dentro de dados reais. Ninguém digita uma tabulação num campo de endereço, numa descrição de produto ou numa caixa de comentário, porque na maioria das interfaces a tecla Tab move o foco em vez de inserir o caractere. Esse é o argumento inteiro, e para um trabalho pontual é forte: o separador que não aparece nos seus dados não precisa ser escapado.

A área de transferência é para o que o TSV realmente serve

Excel e Google Sheets leem texto separado por tabulação direto da área de transferência. Copie o resultado convertido, clique numa célula, cole, e os dados caem nas colunas sem diálogo, sem pergunta de delimitador. Um CSV colado do mesmo jeito chega como uma única coluna de texto por linha, e é por isso que as pessoas acabam nesta página.

Isso torna esse o caminho mais rápido de uma exportação JSON até algo que dá para ordenar e filtrar, e vale ser honesto sobre quando é o caminho errado. Se o arquivo vai ser guardado, enviado a alguém ou importado repetidas vezes, salve um CSV ou uma planilha de verdade — a área de transferência é uma conveniência, não um mecanismo de entrega.

Como registros JSON viram linhas e colunas

Cada registro do array vira uma linha, e as colunas vêm das chaves. Os registros não precisam concordar entre si: a conversão reúne a união de todas as chaves do arquivo inteiro e deixa uma célula vazia onde um registro não tem nada para ela, então uma exportação em que alguns itens têm um campo opcional converte sem que nenhum registro seja descartado.

Essa reconciliação explica uma surpresa comum. Converter os dez primeiros registros para um teste pode produzir menos colunas do que converter a exportação inteira, porque a amostra não continha os campos mais raros. Se uma coluna esperada estiver faltando, o motivo quase sempre é que nenhum registro do arquivo a tinha.

Uma única chave de envelope é desembrulhada automaticamente

Respostas de API raramente devolvem um array puro. Elas devolvem um objeto com uma chave — results, data, items — cujo valor é o array que você quer. A conversão reconhece esse formato: um objeto com exatamente uma chave apontando para um array é desembrulhado, e os registros de dentro viram as linhas.

Um objeto com duas chaves não é desembrulhado, porque não há como saber qual das duas é o dado e qual é o cursor de paginação. Nesse caso o objeto inteiro vira uma única linha com nomes de coluna pontuados, o que parece errado e é o sinal para apagar o envelope num editor de texto e converter de novo.

Objetos aninhados viram nomes de coluna com ponto

JSON é uma árvore e uma tabela é uma grade, então o aninhamento precisa ir para algum lugar. Ele vai para os nomes de coluna: um registro com um objeto cliente contendo uma cidade produz uma coluna chamada cliente.cidade. Um nível de aninhamento produz uma tabela legível para qualquer pessoa, e dois níveis ainda costuma funcionar.

Além disso a coisa degrada rápido. Nomes de coluna ficam longos, a tabela fica muito larga, e a maioria das células fica vazia porque registros diferentes se aninham de formas diferentes. Sessenta colunas numa exportação que parecia simples é a estrutura dos dados aparecendo, não um defeito.

Arrays dentro de um registro não têm boa coluna

Um registro com três etiquetas vira três colunas chamadas tags.0, tags.1 e tags.2. Isso é honesto, preserva cada valor, e é uma tabela ruim: o próximo registro com cinco etiquetas acrescenta mais duas colunas, e ordenar pela "segunda etiqueta" não tem sentido nenhum.

Onde o array carrega o significado — um pedido com itens, um post com comentários — a resposta útil são duas tabelas ligadas por um identificador, do jeito que um banco de dados guardaria. Onde é incidental, juntar os valores numa única string dentro do JSON antes de converter produz uma planilha bem mais utilizável.

O caso de tabulação dentro de um valor, e o que o escritor faz com isso

A afirmação de que tabulações nunca aparecem em dados é verdadeira quase sempre e não exatamente sempre. Texto copiado de um PDF, um trecho de código num campo de comentário e qualquer coisa colada de outra planilha podem carregar uma. Uma quebra de linha dentro de um valor é ainda mais comum.

Quando isso acontece, o valor é envolvido em aspas duplas, o escape padrão que qualquer ferramenta lê corretamente ao importar um arquivo. A área de transferência é onde isso é menos confiável, porque o tratamento de colar varia entre aplicativos. Se você sabe que os dados têm texto livre com quebras de linha, baixe o arquivo e use a importação em vez de colar.

A conversão de JSON para TSV roda no navegador

A leitura e a escrita são JavaScript rodando nesta aba. Nada é enviado a servidor nenhum, não há cadastro nem limite diário, e o plano gratuito aceita até 100 MB — com o teto prático sendo a memória do seu próprio navegador, porque o array inteiro precisa ser lido antes que qualquer coisa seja escrita.

Isso vale mais do que parece para este par. Uma exportação JSON quase sempre é saída bruta de API — cadastro de cliente, histórico de pedidos, respostas de formulário — e geralmente contém campos em que ninguém pensou porque ninguém esperava que fossem lidos. Levar isso a uma planilha sem passar pelo servidor de ninguém é a versão simples de nem precisar pensar nisso.

Como converter JSON para TSV

  1. Solte o seu arquivo JSON nesta página, ou clique para escolher um.
  2. Escolha TSV como destino. A conversão acontece no seu navegador e o arquivo não é enviado.
  3. Baixe o arquivo TSV pronto.

JSON ou TSV: o que muda

JSON comparado com TSV
JSONTSV
Nome completoJavaScript Object NotationTab-Separated Values
Extensão do arquivo.json.tsv, .tab
Tipo de mídiaapplication/jsontext/tab-separated-values
Publicado pela primeira vez20011993
EspecificaçãoRFC 8259IANA text/tab-separated-values
LicençaPadrão abertoPadrão aberto
Situação hojeAtualAtual
Abre no navegadorTodos os navegadoresNenhum navegador
Considerado no lugarXML, YAML, NDJSONCSV

Abrir o resultado

Nenhum navegador lê TSV. É o menos portátil dos dois, então vale confirmar que o destinatário aceita antes de enviar.

Os programas de sempre não se cruzam: JSON abre em Visual Studio Code, jq e Postman, e TSV em Microsoft Excel, LibreOffice Calc e pandas, então quem receber o resultado precisa de algum do segundo grupo.

Para que serve cada formato

JSON foi publicado em 2001. Está descrito em RFC 8259, e vale conhecer se o arquivo precisa sobreviver à ferramenta que o escreveu.

TSV e de 1993, descrito em IANA text/tab-separated-values. Microsoft Excel, LibreOffice Calc e pandas leem o formato.

De JSON para TSV: perguntas frequentes

Meu arquivo JSON é enviado para algum lugar?

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.

Converter JSON para TSV é grátis?

É. 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.

Perde qualidade ao converter JSON para TSV?

JSON e TSV descrevem o conteúdo de maneiras radicalmente diferentes. A conversão é, portanto, uma reconstrução e não uma cópia: fiel, mas não idêntica byte a byte. Objetos aninhados são achatados em colunas. Dados muito aninhados perdem a forma.

Um arquivo TSV abre no navegador?

Nenhum navegador lê TSV. É o menos portátil dos dois, então vale confirmar que o destinatário aceita antes de enviar.

Mais sobre esses formatos