Utilia

Conversor de JSON para CSV

Converte JSON em CSV e CSV em JSON no teu navegador. As chaves aninhadas passam a colunas, o separador é detetado e nada é enviado para um servidor.

Conversão

Como usar o conversor de JSON para CSV

  1. Escolhe a direção: JSON → CSV ou CSV → JSON.
  2. Cola os teus dados na caixa de entrada ou clica em Abrir um ficheiro para carregar um ficheiro .json, .csv ou .tsv do teu computador (até 10 MB).
  3. Escolhe um Separador. Ao ler CSV, Detetar automaticamente costuma encontrar o certo; ao escrever CSV, a deteção automática usa a vírgula.
  4. Ajusta as opções da direção atual e clica em Converter. O resultado também se atualiza enquanto escreves.
  5. Copia ou transfere o resultado. Inverter a direção passa o resultado para a entrada, para o converteres no sentido contrário.

De JSON para CSV

Um ficheiro CSV é uma tabela plana: uma linha de cabeçalho com os nomes das colunas e uma linha por registo. O JSON é uma árvore, por isso o conversor tem de decidir como os registos e os valores aninhados passam a linhas e colunas.

  • Uma lista de objetos dá uma linha por objeto. As colunas são a união de todas as chaves, pela ordem em que aparecem pela primeira vez, por isso um objeto a que falte uma chave fica simplesmente com uma célula vazia.
  • Um objeto com uma única propriedade do tipo lista, como {"items": [ … ]}, uma forma comum nas respostas de APIs, é desembrulhado e cada elemento passa a uma linha. Qualquer outro objeto dá uma única linha.
  • Uma lista de listas já é uma tabela e é escrita tal como está, sem linha de cabeçalho.
  • Com Achatar as chaves aninhadas (morada.cidade) ligado, os objetos aninhados passam a nomes de colunas com pontos: {"morada": {"cidade": "Braga"}} produz uma coluna morada.cidade. As listas dão colunas com índices: tags.0, tags.1… Com a opção desligada, os valores aninhados são escritos numa única célula como texto JSON.

Os valores que contêm o separador, aspas ou quebras de linha são postos entre aspas segundo o RFC 4180, o formato que o Excel, o LibreOffice e o Google Sheets leem. null passa a uma célula vazia.

Proteção contra fórmulas de folhas de cálculo

Uma célula que comece por =, +, - ou @ pode ser executada como fórmula quando o CSV é aberto numa folha de cálculo. É o que se chama injeção de CSV. Se os teus dados vierem de utilizadores ou de outras fontes não fiáveis, liga Proteger contra fórmulas de folhas de cálculo: essas células de texto recebem um apóstrofo no início, para que a folha de cálculo as mostre como texto simples.

De CSV para JSON

  • A primeira linha é um cabeçalho transforma cada linha num objeto cujas chaves são os nomes das colunas. Desliga a opção para obteres uma lista de listas.
  • Converter números e booleanos faz de 42 um número e de true um booleano, e transforma as células vazias em null. Desliga a opção para manter todos os valores como strings, o que preserva os zeros à esquerda em códigos postais ou números de telefone.
  • Reconstruir objetos aninhados a partir dos cabeçalhos com pontos inverte o achatamento: os cabeçalhos morada.cidade e tags.0 produzem {"morada": {"cidade": …}, "tags": [ … ]}. A ida e volta JSON → CSV → JSON devolve assim a estrutura original para dados típicos.

Se algumas linhas tiverem mais ou menos campos do que o cabeçalho, a conversão é feita na mesma, mas um aviso indica a linha da primeira linha irregular para que a possas verificar.

Perguntas frequentes

Os meus dados são enviados para algum lado?

Não. A conversão corre inteiramente no teu navegador. Nada do que colas ou abres é enviado para um servidor, por isso podes converter em segurança exportações com dados de clientes ou dados internos.

Porque é que o Excel mostra o meu CSV numa única coluna?

O Excel usa o separador de listas do sistema. Em muitas configurações regionais europeias, incluindo a portuguesa, esse separador é o ponto e vírgula. Escolhe Ponto e vírgula (;) como separador antes de converter, ou usa o assistente de importação do Excel e escolhe a vírgula.

Como são tratadas as listas de objetos aninhadas?

Com o achatamento ligado, cada elemento recebe o seu próprio conjunto de colunas, por exemplo orders.0.id e orders.1.id. Funciona bem com listas curtas. Para listas longas, costuma ser melhor converter essa lista sozinha, para que cada elemento passe a uma linha.

Porque é que os meus códigos postais perderam o zero inicial?

Quando Converter números e booleanos está ligado, 01234 é lido como o número 1234. Desliga a opção para manteres todos os valores exatamente como estão escritos no CSV.

Qual é o tamanho máximo?

Podem ser abertos ficheiros até 10 MB. Colar textos maiores também funciona, mas o navegador fica lento com áreas de texto muito grandes, por isso divide primeiro os ficheiros enormes.