Da resposta da API para a planilha
JSON é o formato nativo das APIs web, mas as pessoas que precisam dos dados muitas vezes vivem em planilhas. Casos típicos: uma lista de pedidos puxada da API de uma loja que o contador quer no Excel, registros de usuários exportados de um banco NoSQL para uma tabela dinâmica rápida, eventos de analytics para filtrar no Google Planilhas, ou um lote de registros para importar de uma vez num CRM que só aceita envio de CSV. Um arquivo CSV também é o formato mais fácil de comparar, ordenar e filtrar com grep na linha de comando.
A ferramenta recebe um array de objetos e gera uma linha por objeto e uma coluna por campo, com uma linha de cabeçalho no topo. Um contador abaixo da entrada mostra quantas linhas foram geradas, uma checagem rápida contra o número de registros que você esperava.
Como a tabela é montada
Linhas e colunas vêm dos próprios dados, sem precisar de esquema:
- As colunas são a união de todas as chaves, na ordem em que aparecem pela primeira vez. Se o primeiro registro tem
idename, e o décimo também tememail, o cabeçalho termina comemaile as nove primeiras linhas deixam essa célula vazia. - Objetos aninhados são achatados com pontos, então
{"customer": {"address": {"city": "Lyon"}}}gera uma colunacustomer.address.city. Qualquer profundidade funciona. - Um único objeto, em vez de um array, é tratado como uma tabela de uma linha.
- Valores simples no array, como
[1, 2, 3]ou uma lista de strings, vão para uma única coluna chamadavalue. nullvira uma célula vazia, e booleanos são escritos comotrueefalse.
Um objeto aninhado vazio como "meta": {} não tem campos para achatar, então não gera coluna nenhuma.
Arrays dentro dos registros
Planilhas não têm noção de lista dentro de uma célula, então um array como "tags": ["red", "sale"] é escrito como o seu texto JSON, ["red","sale"], numa única célula. Isso mantém os dados sem perdas: você pode analisá-los de volta depois ou dividi-los com uma fórmula da planilha.
Se o que você realmente precisa é de uma linha por elemento do array, por exemplo uma linha por item do pedido em vez de uma por pedido, reorganize os dados antes. Na maioria das linguagens de script isso é um map de uma linha sobre os registros pai, copiando o ID do pai para cada filho. Passar o array reorganizado para o conversor então gera um resultado limpo e totalmente tabular.
Aspas e delimitadores
Uma célula só é colocada entre aspas duplas quando precisa: quando contém o delimitador, uma aspa dupla ou uma quebra de linha. Aspas dentro de um valor são duplicadas, como exige a RFC 4180, então 6" pipe é escrito como "6"" pipe". Todos os outros valores são escritos sem aspas, o que mantém o arquivo pequeno e legível.
O delimitador importa mais quando o arquivo é aberto com um clique duplo no Excel:
- Vírgula é o padrão para Google Planilhas, LibreOffice, bancos de dados, o módulo
csvdo Python e quase toda ferramenta de importação. - Ponto e vírgula é o que o Excel espera quando o Windows está configurado numa localidade que usa vírgula como separador decimal, o que abrange a maior parte da Europa continental e da América Latina. Com um arquivo separado por vírgulas nessas localidades, cada linha cai inteira na coluna A.
Na dúvida, use a vírgula e abra o arquivo pela importação Dados, De Texto/CSV do Excel, que permite escolher o separador explicitamente.
Levando para o Excel sem problemas
Alguns problemas acontecem depois da conversão, dentro da planilha, e são fáceis de evitar:
- Letras acentuadas viram símbolos. O arquivo é UTF-8 sem marca de ordem de bytes (BOM), e algumas versões do Excel supõem uma codificação antiga ao abri-lo com clique duplo. Use a importação De Texto/CSV e escolha UTF-8, ou abra o arquivo no Google Planilhas.
- Zeros à esquerda e IDs longos são deturpados. O Excel converte
00042em42e transforma números de 16 dígitos ou mais em notação científica. Na janela de importação, defina essas colunas como Texto. - Datas mudam de formato. Strings ISO como
2026-03-01T10:00:00Zpodem ser interpretadas em parte. Importe a coluna como Texto se precisar do valor original.
Observe que números acima de 9.007.199.254.740.991 já perdem precisão quando o JSON é analisado no navegador, então guarde IDs muito grandes como strings no JSON de origem se eles precisarem sobreviver exatamente.
Conferindo a entrada antes
Se o conversor acusar JSON inválido, cole os dados no formatador de JSON, que mostra a linha e a coluna exatas do problema. Dados de um arquivo de log muitas vezes estão no formato JSON Lines, um objeto por linha, sem colchetes em volta; envolva-os com [ e ] e acrescente vírgulas entre as linhas para formar um array válido. A conversão inversa está disponível no CSV para JSON. Todo o processamento acontece na página, então nada do que você cola é enviado a lugar nenhum.