Conversor de CSV para JSON

Cole CSV (ou TSV) à esquerda, obtenha um array JSON de objetos à direita. Cabeçalhos auto-detectados. Sem upload.

  1. Cole seu CSV na área de texto à esquerda.
  2. Clique em "Converter para JSON". A primeira linha é tratada como cabeçalhos.
  3. Copie o array JSON ou baixe como data.json.
  4. 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.