Conversores de dados · 5 min de leitura
JSON a CSV: nivelando dados aninhados sem perder o significado
CSV ainda é o formato que abre em qualquer coisa: planilhas, ferramentas de BI, sistemas financeiros, laptop de revisor. Converter JSON em CSV é principalmente uma questão de o que fazer com as partes aninhadas, porque uma tabela tem uma linha por registro e colunas fixadas antecipadamente, enquanto JSON aninha-se felizmente na profundidade que desejar.
Atualizado
O problema da coluna
Duas regras tornam previsível uma conversão de JSON para CSV. Primeiro, as colunas são a união de todas as chaves em todos os registros — uma chave que aparece em apenas um objeto ainda recebe uma coluna vazia em outro lugar. Segundo, cada linha deve emitir valores na mesma ordem. Errar produz um arquivo que abre bem e fica silenciosamente desalinhado da primeira linha onde uma chave estava ausente.
Achatando objetos aninhados
A técnica convencional é a notação de ponto: `address` contendo `city` e `postcode` torna-se `address.city` e `address.postcode`. Isso mantém todos os valores visíveis e consultáveis na planilha, ao custo de cabeçalhos mais longos. Estruturas profundamente aninhadas podem produzir nomes complicados, portanto, nivele um nível onde você controla os dados e deixe a ferramenta nivelar totalmente quando estiver explorando.
{"id": 7, "customer": {"name": "Ada", "plan": "pro"}}
→ id,customer.name,customer.plan
7,Ada,pro
Matrizes: a parte que achata mal
Uma matriz de escalares pode ser unida em uma célula com um separador, o que é adequado para tags e aceitável para listas curtas. Uma matriz de objetos – itens de linha de pedido, por exemplo – não pertence a uma única célula: junte-a e você não poderá somar as quantidades; indexe-o em `items.0.sku`, `items.1.sku`, e as colunas dependem de quantos itens cada pedido tinha. Quando você atinge esse caso, os dados precisam de dois arquivos CSV, um por tabela, vinculados por uma chave.
Se uma célula contiver uma vírgula, aspas ou nova linha, ela deverá ser colocada entre aspas e as aspas internas duplicadas. A saída gerada lida com isso — CSV editado manualmente geralmente não, e é por isso que as importações falham intermitentemente em linhas contendo endereços.
Fazendo o arquivo se comportar no Excel
O Excel assume a codificação do sistema, a menos que seja informado o contrário, portanto, caracteres acentuados podem corromper. Emitir UTF-8 com uma marca de ordem de bytes evita isso; sem ele, o mesmo arquivo que parece perfeito no Numbers ou no Planilhas mostra o mojibake no Excel. Também vale a pena citar identificadores numéricos longos – números de cartão, SKUs grandes – para que o Excel não os converta em notação científica.
Quando CSV é a saída errada
Se o consumidor for um programa, CSV joga fora informações de tipo e aninhamento sem nenhum benefício — JSON Linhas ou uma carga de banco de dados é melhor. CSV é para humanos com planilhas: relatórios, exportações, reconciliação. Escolhê-lo deliberadamente, e não por hábito, é metade do trabalho. O conversor YamlBox JSON para CSV é executado inteiramente no navegador, portanto, uma exportação contendo linhas de clientes nunca sai da sua máquina.
JSON a CSV — perguntas frequentes
Como os objetos aninhados são tratados ao converter JSON em CSV?
Eles são nivelados com notação de ponto por padrão — `customer.name` se torna sua própria coluna. Em vez disso, você pode manter os valores agrupados, mas as colunas niveladas são o que torna o arquivo filtrável e dinamizável em uma planilha.
Por que os caracteres acentuados parecem errados no Excel após a conversão?
O Excel lê o arquivo usando a codificação do sistema local, a menos que uma marca de ordem de bytes indique o contrário. A exportação de UTF-8 com uma lista técnica mantém os nomes intactos; sem ele, os mesmos dados são renderizados corretamente no Planilhas Google e incorretamente no Excel.
Posso converter um array de objetos em CSV?
As colunas vêm da união de chaves em todos os registros, portanto, uma matriz de objetos de formato misto ainda produz uma tabela válida com espaços em branco onde faltava uma chave. Matrizes dentro desses objetos são o caso que precisa ser dividido em um segundo arquivo.
Ferramentas mencionadas nesta postagem
Mais artigos para ler
5 min de leitura
CSV a JSON: da planilha aos dados estruturados
Converta CSV em JSON no navegador — linhas de cabeçalho, delimitadores, regras de cotação e manipulação de tipos explicadas, com as exportações de planilhas que quebram os analisadores.
6 min de leitura
Excel para JSON: transformando pastas de trabalho em dados
Converta Excel para JSON no navegador a partir de XLSX pastas de trabalho — cabeçalhos, séries de datas, fórmulas e múltiplas planilhas explicadas, sem nada carregado.
5 min de leitura
Markdown tabelas: gere-as em vez de contar tubos
Crie tabelas de markdown no estilo GitHub a partir de linhas ou planilhas — alinhamento, tubos de escape e quando uma tabela é a escolha errada para seu README.