JSON para CSV
Converta um array JSON para CSV para Excel, Google Sheets ou uma importação de banco de dados. Objetos aninhados são achatados em colunas com pontos, e registros com formatos distintos são combinados em um único conjunto de colunas.
- Os arquivos nunca saem do seu dispositivo
- Grátis, sem cadastro
- Sem marcas d'água
- Funciona offline depois de carregado
Como json para csv
- 1
Cole seu JSON
Um array de objetos funciona melhor — a ferramenta vai dizer se precisa de um formato distinto.
- 2
Escolha suas opções
Escolha um delimitador, e se deve achatar objetos aninhados em colunas com pontos.
- 3
Baixe o CSV
Salve e abra diretamente no Excel ou Google Sheets.
Por que JSON e CSV são formas de dados fundamentalmente distintas
JSON é construído para representar dados arbitrariamente aninhados em forma de árvore — objetos dentro de objetos, arrays dentro de objetos, valores de tipos genuinamente distintos lado a lado — enquanto CSV só consegue representar uma tabela plana e uniforme: linhas e colunas, cada linha com o mesmo conjunto de colunas, cada célula um único valor plano. Converter da primeira forma para a segunda necessariamente significa tomar decisões sobre como achatar algo que não se encaixa naturalmente em linhas e colunas, que é onde vive a maior parte da complexidade real desse tipo de conversão — não em ler a sintaxe JSON em si, que é direta, mas em decidir o que uma linha de planilha deveria sequer significar para dados que nunca foram tabulares para começar.
Como objetos aninhados se tornam nomes de coluna com pontos
Um objeto aninhado como `{"user": {"name": "Ada", "id": 42}}` não tem uma única coluna óbvia para se tornar em uma tabela plana, então é achatado em duas colunas separadas — `user.name` e `user.id` — com a notação de ponto preservando exatamente de onde cada valor veio na estrutura original. Esta é uma convenção amplamente reconhecida especificamente porque é reversível: uma coluna chamada `user.name` descreve sem ambiguidade um caminho de volta a uma estrutura aninhada, o que importa se o CSV algum dia precisar ser convertido de volta para JSON ou importado em um sistema que entenda caminhos com pontos como campos aninhados.
Arrays aninhados são tratados de forma diferente, e deliberadamente assim: em vez de explodir um array em linhas adicionais — o que mudaria quantas linhas a tabela tem dependendo de quantos elementos aninhados por acaso estão dentro de um registro, um efeito colateral genuinamente surpreendente e frequentemente indesejado — um valor de array é serializado como texto JSON dentro de uma única célula. O número de linhas permanece previsível e corresponde exatamente ao número de registros de entrada, que é quase sempre o que alguém convertendo para uma planilha realmente quer, ao custo de essa célula precisar de análise adicional se seu conteúdo for necessário individualmente.
Lidando com uma mistura de registros que nem todos têm os mesmos campos
Respostas de API reais e JSON montado à mão frequentemente contêm registros onde nem todos os objetos têm chaves idênticas — um campo opcional presente em alguns registros e ausente em outros, ou um esquema que evoluiu com o tempo então registros mais antigos e mais novos diferem ligeiramente. CSV não consegue representar essa variação diretamente, já que cada linha precisa se alinhar ao mesmo conjunto fixo de colunas; um programa lendo um arquivo CSV não tem como saber que a uma linha "falta" uma coluna a menos que cada linha tenha explicitamente uma célula para ela. A solução é calcular a união de cada chave vista em cada registro, na ordem em que cada chave foi encontrada pela primeira vez, e preencher uma célula vazia para qualquer registro ao qual falte um campo dado — assim o formato permanece consistente em todo o arquivo sem silenciosamente descartar as colunas de nenhum registro nem desalinhar valores na coluna errada.
Perguntas frequentes
Qual formato de JSON ele espera?
Um array de objetos — o formato que quase toda API retorna. Um único objeto é tratado como uma tabela de uma linha. Arrays de valores primitivos produzem um arquivo de uma única coluna.
Como objetos aninhados são tratados?
São achatados em nomes de coluna com pontos, então `{"user":{"name":"Ada"}}` se torna uma coluna chamada `user.name`. Arrays aninhados são escritos como texto JSON em uma única célula em vez de explodidos em linhas adicionais, porque mudar o número de linhas quase nunca é o que uma exportação para planilha quer.
O que acontece se meus registros têm campos distintos?
O conjunto de colunas é a união de cada chave encontrada, na ordem em que foi vista pela primeira vez. Registros aos quais falta um campo recebem uma célula vazia em vez de serem descartados ou desalinhados.
Por que o Excel estraga meu CSV?
Normalmente o delimitador: o Excel em muitas configurações europeias espera ponto e vírgula, não vírgulas. Mude a opção de delimitador. O Excel também reformata IDs numéricos longos como notação científica ao abrir — importar via Dados → De texto evita isso.
Aspas e vírgulas dentro dos valores são escapadas?
Sim, seguindo a RFC 4180. Campos contendo o delimitador, uma aspa ou uma quebra de linha são envolvidos em aspas, e aspas internas são duplicadas — então o arquivo converte corretamente de ida e volta através de qualquer leitor compatível.