Dados · 2 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"""