Conversor de CSV para JSON online

O conversor de CSV para JSON transforma uma tabela CSV em uma lista de objetos JSON, usando a primeira linha como nome das chaves. Ele detecta sozinho se o separador é vírgula, ponto e vírgula ou tabulação, entende campos entre aspas e converte números e booleanos. Tudo roda no seu navegador, sem enviar o arquivo a nenhum servidor.

Atualizado em · Por Leonardo Gaertner

Achou um resultado errado ou tem uma sugestão? Avise por e-mail.

Como usar

  1. Cole o CSV no campo da esquerda, ou clique em Abrir arquivo.
  2. Deixe o separador em Detectar ou escolha um. Desmarque Primeira linha é o cabeçalho se o CSV não tiver títulos.
  3. Desmarque Converter números e booleanos se quiser todos os valores como texto.
  4. Clique em Copiar resultado ou em Baixar arquivo.

Como funciona

A ferramenta lê o CSV segundo a RFC 4180: campos entre aspas podem conter o separador e quebras de linha, e aspas duplas dentro de um campo são escritas em dobro. Linhas em branco são ignoradas e a marca BOM do início do arquivo é descartada.

Cada linha depois do cabeçalho vira um objeto. Cabeçalhos repetidos ganham um sufixo (nome, nome_2) e cabeçalhos vazios viram coluna_1, coluna_2 e assim por diante. Linhas com menos campos que o cabeçalho ficam com texto vazio nas chaves que faltam.

Com a conversão de tipos ligada, 12 vira o número 12 e true vira o booleano true, mas só quando todos os valores preenchidos da coluna são do mesmo tipo, para que os registros fiquem coerentes. Uma coluna com qualquer valor que não seja número (como 007, um CEP com zero à esquerda, um número com mais de 15 dígitos ou um decimal com vírgula, 1,5) fica inteira como texto. Células vazias de uma coluna numérica viram null.

Exemplo

CSV:

nome;idade;ativo

Ana;30;true

Bia;25;false

JSON: [{"nome":"Ana","idade":30,"ativo":true},{"nome":"Bia","idade":25,"ativo":false}]

Fonte: RFC 4180: o formato CSV; RFC 8259: o formato JSON

Perguntas frequentes

A ferramenta lê CSV do Excel em português?

Sim. O Excel em português salva com ponto e vírgula como separador, e a detecção automática reconhece isso. Acentos funcionam se o arquivo estiver em UTF-8.

Por que o número 007 continua como texto?

Porque converter para número apagaria os zeros à esquerda, o que estraga códigos, CEPs e identificadores. Quando uma coluna tem um valor assim, a coluna inteira fica como texto, para que todos os registros tenham o mesmo tipo. Colunas só com números sem zeros à esquerda e com até 15 dígitos são convertidas.

O que fazer com números que usam vírgula decimal, como 1,5?

Eles ficam como texto, porque em JSON o decimal usa ponto. Troque a vírgula por ponto na origem, ou converta no seu código depois de ler o JSON.

O CSV não tem cabeçalho. E agora?

Desmarque Primeira linha é o cabeçalho. O resultado passa a ser uma lista de listas, uma para cada linha, em vez de uma lista de objetos.