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.

Abrir o conversor de JSON para CSV

LinkedInXFacebook