Início CSV para JSON

Converter CSV para JSON

Cole um arquivo CSV e receba um array JSON. A conversão acontece nesta aba — nada é enviado, então é seguro para dados que você não colaria em uma ferramenta hospedada.

Outros idiomas:EnglishTürkçeEspañolDeutsch中文हिन्दीРусский

Detecção de tipos e a regra do zero à esquerda

Toda célula de um CSV é texto. JSON tem tipos de verdade, então um conversor precisa adivinhar que texto era um número, um booleano ou um nulo — e é nesse palpite que as conversões de CSV para JSON corrompem dados em silêncio. Desmarque a caixa e todo valor chega como string, que é o caminho seguro quando você não tem certeza.

Com a detecção ligada, a regra que mais importa é que um zero à esquerda nunca é um número. 007 continua sendo a string "007", assim como 01310-100, 012.345.678-90 e 0000-0002-1825-0097. Não é detalhe: CEPs, CPFs, telefones, códigos de produto e ISBNs são sequências de dígitos cujos zeros à esquerda têm significado — e o erro clássico de planilha é exatamente essa conversão feita sem cuidado.

CélulaCom detecçãoPor quê
4242Inteiro simples.
-3.5-3.5Decimal simples.
00Um zero sozinho não tem zero à esquerda a perder.
007"007"O zero à esquerda é significativo.
1.50"1.50"O zero final se perderia.
1e5"1e5"Reescrito, viraria 100000.
true / TRUEtrueBooleano, sem diferenciar maiúsculas.
nullnullNulo, sem diferenciar maiúsculas.
(vazia)nullUma célula vazia é um valor ausente, não uma string vazia.
1,5"1,5"Uma vírgula decimal não é um número JSON.

O teste geral é a ida e volta: um valor só é convertido se, ao reescrever o número resultante, se obtém exatamente o texto original. Essa única regra mantém intactos 1.50, 1e5 e 007. Números brasileiros com vírgula decimal continuam texto pelo mesmo motivo — JSON só conhece o ponto.

O que o conversor trata

  • Campos entre aspas — vírgulas, aspas e quebras de linha dentro de "…", com "" como aspas escapadas.
  • Tabulações ou vírgulas — o delimitador vem da linha de cabeçalho, então um TSV funciona sem mudar nada.
  • CRLF ou LF — finais de linha do Windows e do Unix são lidos.
  • Linhas incompletas — uma linha curta fica com valores vazios, sem deslocar as colunas.
  • Colunas sem nome — um cabeçalho vazio vira col_3, não uma chave vazia.

Um CSV separado por ponto e vírgula, como o que o Excel em português costuma salvar, também é reconhecido, desde que a linha de cabeçalho tenha pontos e vírgulas e não vírgulas.

O que ele deliberadamente não faz

Ele não aninha. Uma coluna chamada user.name vira uma chave JSON literalmente chamada "user.name", não um objeto aninhado — a direção contrária, na página JSON para CSV, achata com pontos, mas ler esses pontos de volta como estrutura remodelaria em silêncio qualquer arquivo cujas colunas tenham um ponto.

Também não processa em fluxo. O arquivo inteiro é lido na memória, então mantenha a entrada abaixo de uns 2 MB; acima disso, divida o arquivo ou use uma ferramenta de linha de comando. E não conserta CSV quebrado: um arquivo com aspas sem fechar é lido, mas não do jeito que você queria.

Perguntas frequentes

Meu arquivo é enviado para algum lugar?

Não. A conversão é JavaScript rodando na sua própria aba — o arquivo nunca sai da sua máquina, e a página funciona offline depois de carregada. Por isso também não há limite de tamanho imposto por um servidor, só o da memória do navegador.

Por que meu CEP é uma string?

Porque começa com zero. Um valor só vira número quando, ao reescrevê-lo, se reproduz exatamente o texto original, o que mantém intactos 007, 01310-100 e 1.50. Desligue a detecção de tipos se quiser todas as colunas como strings.

Posso converter TSV em vez de CSV?

Sim. O delimitador é detectado pela linha de cabeçalho, então um arquivo separado por tabulações é convertido sem mudar nenhuma configuração. O mesmo vale para arquivos separados por ponto e vírgula.

Ele lida com vírgulas dentro de um campo?

Sim, se o campo estiver entre aspas, como exige a RFC 4180. "Silva, Ada" chega como um único valor; o analisador também trata aspas escapadas ("") e quebras de linha dentro de campos entre aspas.

O que acontece com uma célula vazia?

Com a detecção de tipos ligada ela vira null, porque uma célula vazia num CSV quase sempre significa “sem valor”, e não “a string vazia”. Com a detecção desligada ela continua uma string vazia.

Relacionado

Última atualização