JSON para Excel e CSV
Converter JSON em uma tabela quase sempre envolve perdas. A questão é se elas são deliberadas ou acidentais.
O que se perde e por quê
- Estrutura. Uma tabela plana não expressa aninhamento. Os objetos são desdobrados em colunas com notação de ponto, e isso só é reversível em parte.
- Arrays de objetos. Uma lista dentro de um registro é uma segunda tabela. Em uma única coluna ela sobrevive como texto, mas você não consegue trabalhar com ela.
- Tipos. O JSON registra tipos explicitamente. O CSV não tem nenhum, e o lado que lê precisa adivinhá-los de novo.
- Identificadores longos. Um número como
78123456789012345perde os últimos dígitos se tratado sem cuidado.
A ordem do trabalho
Ache o array com os dados. Em uma resposta de API ele raramente fica na raiz — geralmente sob data, items ou result. Se há vários arrays, escolha de propósito: às vezes você quer a lista pequena de consulta, não a lista grande de registros.
Decida o que fazer com o aninhamento. Desdobrar em colunas ou deixar como está — depende de você precisar desses campos na tabela.
Confira os tipos. Preste atenção especial às colunas de identificadores: elas precisam continuar texto.
Exporte. Para XLSX se o arquivo é para uma pessoa; para CSV se outro programa o espera; para SQL se os dados vão para um banco. Na exportação para CSV você escolhe o delimitador, a codificação com ou sem BOM e o formato de data, conforme o programa que vai abrir o arquivo (no Brasil, em geral ponto e vírgula e UTF-8 com BOM para o Excel).
Exportações paginadas
Uma API entrega os dados em páginas, e você acaba com um conjunto de arquivos com o mesmo invólucro. Juntá-los em uma tabela à mão é tedioso.
Se a API pode devolver JSON Lines, use-o: as páginas se juntam por simples concatenação e você obtém um arquivo que se lê como tabela.
Se não pode, processe as páginas uma de cada vez e exporte cada uma; junte-as na ferramenta final, como a de mesclar arquivos de mesma estrutura.
Conferindo o resultado
Duas conferências pegam quase todos os erros de conversão:
- Contagem de linhas. Precisa bater com o tamanho do array de origem. Uma diferença significa que foi pego o array errado ou que alguns registros foram filtrados.
- Amostra das colunas de identificadores. Abra o CSV resultante e confira se números longos não viraram expoentes e se códigos com zeros à esquerda mantiveram os zeros.
Perguntas frequentes
Posso exportar só alguns dos campos?
Pode: oculte as colunas de que não precisa, e só as visíveis vão para a exportação.
Como exporto um array aninhado como tabela separada?
Hoje isso exige o arquivo de origem e escolher outro array em Leitura do arquivo.
A ordem dos registros é mantida?
É, a não ser que você tenha aplicado uma ordenação: as linhas seguem a ordem do array de origem.
Grátis para uso pessoal. Seu arquivo não é enviado a nenhum servidor. Versão para Windows — 3.5 MB, sem instalação: detalhes. Para organizações — licença.