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 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.
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.
JSON para TSV
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.
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.
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.
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.
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.
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.
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 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.
| JSON | TSV | |
|---|---|---|
| Nome completo | JavaScript Object Notation | Tab-Separated Values |
| Extensão do arquivo | .json | .tsv, .tab |
| Tipo de mídia | application/json | text/tab-separated-values |
| Publicado pela primeira vez | 2001 | 1993 |
| Especificação | RFC 8259 | IANA text/tab-separated-values |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Atual |
| Abre no navegador | Todos os navegadores | Nenhum navegador |
| Considerado no lugar | XML, YAML, NDJSON | CSV |
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.
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.
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.
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.
Nenhum navegador lê TSV. É o menos portátil dos dois, então vale confirmar que o destinatário aceita antes de enviar.