Dados · 3 min de leitura ·
JSON para CSV sem perder nenhum campo
Chaves aninhadas, campos opcionais e vírgulas dentro de textos: como a 4Dev achata um JSON bagunçado em um CSV pronto para a planilha.

Planilhas são planas; JSON não é. Toda conversão de JSON para CSV precisa decidir o que fazer com objetos aninhados, arrays e chaves que só alguns registros têm. É exatamente isto que o conversor da 4Dev faz.
Cada chave ganha uma coluna
A linha de cabeçalho é montada com as chaves de todos os objetos, na ordem em que aparecem pela primeira vez, e não só com o primeiro registro. Um registro sem uma chave recebe uma célula vazia, então as colunas nunca se deslocam e os campos opcionais nunca somem.
[{"id":1,"name":"Ada"},
{"id":2,"name":"Alan","note":"optional"}]
id,name,note
1,Ada,
2,Alan,optional
Objetos aninhados viram colunas com sublinhado
Os objetos são achatados juntando as chaves com um sublinhado, então {"address":{"city":"Lisbon"}} vira uma coluna chamada address_city. Um array de valores simples vai para uma única célula ("admin, dev"), e um array de objetos fica como texto JSON na célula, então nada é descartado.
Vírgulas e aspas são escapadas para você
Qualquer valor com vírgula, aspas duplas ou quebra de linha fica entre aspas duplas, e as aspas internas são duplicadas: a regra padrão de CSV que o Excel e o Google Planilhas esperam.
2,"Alan, T.","says ""hi"""
Abrir o CSV no Excel
O CSV não tem configurações próprias, então o Excel adivinha. Duas coisas costumam dar errado. Em países que usam a vírgula como separador decimal, como o Brasil, o Excel espera ponto e vírgula entre as colunas e pode colocar uma linha inteira em uma só célula. E acentos, hebraico ou emojis podem virar símbolos estranhos quando o arquivo é aberto com uma codificação local em vez de UTF-8. Nos dois casos, use Dados → De Texto/CSV no Excel, escolha UTF-8 e o delimitador vírgula, e as colunas saem certas.
Zeros à esquerda e números longos
As planilhas tratam como número tudo o que parece número. Um CEP como 01234 perde o zero inicial, e um ID de 16 dígitos como 1234567890123456 é arredondado e exibido como 1,23457E+15. O CSV está correto; o estrago acontece quando o Excel o abre. Importe essas colunas como texto e envie IDs longos como strings no JSON ("id": "1234567890123456"), para que qualquer ferramenta os mantenha exatamente como estão.
Arrays dentro dos registros
Os arrays são a parte mais difícil de qualquer conversão, porque um registro pode ter muitos valores enquanto uma linha CSV tem uma célula por coluna. Espalhá-los por várias linhas repetiria todos os outros campos, e espalhá-los por colunas numeradas (tags_1, tags_2…) cria um cabeçalho diferente para cada arquivo. Manter uma lista de valores simples em uma célula, e um array de objetos como texto JSON, faz com que cada registro continue sendo exatamente uma linha e que os dados originais possam ser reconstruídos se for preciso.
Confira o resultado antes de compartilhar
- O número de linhas é igual ao número de registros do array JSON.
- O cabeçalho tem todos os campos esperados, inclusive os opcionais.
- Os campos aninhados aparecem como colunas com sublinhado, como address_city.
- Valores com vírgulas, aspas ou quebras de linha ficaram em uma só célula.
Precisa de uma planilha ou do caminho inverso?
O conversor de JSON para CSV da 4Dev aplica sempre as mesmas regras de achatamento, e as ferramentas JSON para Excel e CSV para JSON cobrem os outros casos comuns. Para uma checagem rápida, cole primeiro alguns registros, confira as colunas e depois converta o arquivo inteiro.