Conversor de CSV para JSON
Cole CSV (ou TSV) à esquerda, obtenha um array JSON de objetos à direita. Cabeçalhos auto-detectados. Sem upload.
- Cole seu CSV na área de texto à esquerda.
- Clique em "Converter para JSON". A primeira linha é tratada como cabeçalhos.
- Copie o array JSON ou baixe como data.json.
- TSV (separado por tabulação) e outros delimitadores são detectados automaticamente pelo PapaParse.
O que ele faz?
Analisa CSV (estilo RFC 4180) em um array JSON onde cada chave corresponde a uma coluna de cabeçalho. Campos entre aspas, vírgulas embutidas, aspas duplas escapadas e fins de linha CRLF / LF são todos tratados. Números, booleanos e valores tipo null ("true", "false", vazio) são tipados automaticamente. O delimitador é auto-detectado — você pode colar TSV, dados separados por ponto e vírgula ou barra vertical e funcionará.
Exemplo
Entrada CSV:
name,age,role
Ada,36,engineer
Grace,40,scientist Saída JSON:
[
{"name": "Ada", "age": 36, "role": "engineer"},
{"name": "Grace", "age": 40, "role": "scientist"}
] Armadilhas comuns de CSV e como tratá-las
CSV parece simples mas tem mais casos extremos do que se imagina. Estes são os padrões que produzem saídas inesperadas.
- Vírgulas embutidas sem aspas. Um campo como `Smith, John` (sem aspas) é dividido em duas colunas. Envolva-os em aspas duplas: `"Smith, John"`.
- Aspas duplas dentro de campo. Dentro de um campo entre aspas, uma `"` literal é escapada duplicando-a: `"He said ""hi"""` decodifica para `He said "hi"`. Escape com barra invertida (`\"`) não é padrão e não é suportado.
- Contagem de colunas inconsistente. Linhas com menos colunas que o cabeçalho recebem null para chaves ausentes; com mais colunas são reportadas como aviso de parser. A conversão completa, mas verifique a saída.
- IDs numéricos que perdem zeros à esquerda. `007` é parseado como número 7, não a string "007". Se zeros à esquerda importam (CEPs, telefones), pré-processe entre aspas — valores entre aspas podem permanecer como strings se você desligar tipagem dinâmica no código a jusante.
- BOM no início do arquivo. CSVs salvos pelo Excel frequentemente incluem uma marca de ordem de bytes UTF-8 (`\uFEFF`) no início. O parser remove, mas se você colar bytes brutos de um editor hex pode ver o BOM como caractere estranho no primeiro cabeçalho.
- Fins de linha misturados. CRLF (Windows), LF (Unix) e CR (Mac antigo) são reconhecidos. Se sua saída parece uma única linha gigante, o arquivo pode não ter quebras de linha — comum quando CSV é gerado por concatenação sem `\n`.
Perguntas frequentes
Suporta valores separados por tabulação (TSV)?
Sim. PapaParse auto-detecta o delimitador no primeiro quilobyte. Tabs, ponto e vírgula, barra vertical e vírgula funcionam sem configuração. Se a detecção errar (raro em dados reais), separe melhor os campos ou pré-processe.
E se meu CSV não tem linha de cabeçalho?
A configuração atual assume que a primeira linha são cabeçalhos. Sem cabeçalho, anteponha uma linha sintética como `a,b,c` antes de colar — ou converta com `header: false` no PapaParse via linha de comando se precisar de array de arrays.
Como datas são tratadas?
Permanecem como strings. O parser só auto-tipa números e booleanos — parsing de data é intencionalmente omitido porque ambiguidade de formato (`01/02/03` é 2 de janeiro nos EUA, 1 de fevereiro no Reino Unido) é arriscada. Processe a jusante onde você conhece a convenção da fonte.
Posso converter arquivos CSV muito grandes?
Até cerca de 50 MB antes do navegador ficar lento. O gargalo é a área de texto, não o parser — para arquivos maiores rode PapaParse na linha de comando. A biblioteca é a mesma.
Meu CSV é enviado para algum lugar?
Não. Tudo roda no seu navegador — seus dados são parseados por JavaScript nesta página e nunca enviados a servidor. Verifique nas ferramentas de desenvolvedor: zero requisições de rede ao clicar em Converter.
Como obtenho JSON em outra forma (aninhado, agrupado)?
Esta ferramenta produz array plano de objetos planos — é o que CSV representa. Para estrutura aninhada, pós-processe a saída com um script (agrupar por coluna, transformar nomes de campo com prefixos, etc.). Tentar codificar hierarquia em CSV geralmente causa mais problemas do que resolve.