Conversão de CSV para JSON — Um Guia Prático para Desenvolvedores

Como converter dados CSV para JSON, quando usar cada formato, e os erros comuns que afetam desenvolvedores trabalhando com dados delimitados.

CSV (Comma-Separated Values) e JSON (JavaScript Object Notation) são dois dos formatos de intercâmbio de dados mais amplamente utilizados. CSV se destaca em dados tabulares com overhead mínimo, enquanto JSON lida facilmente com dados hierárquicos e aninhados.

Por que converter CSV para JSON?

Os arquivos CSV são compactos e fáceis de gerar a partir de planilhas, bancos de dados e logs. Mas CSV tem limitações significativas: não há padrão para tipos (tudo é string), sem suporte a estruturas aninhadas e tratamento ambíguo de caracteres especiais. JSON resolve esses problemas.

Os cenários comuns incluem migrar dados de planilhas para aplicações web, transformar exportações de bancos de dados para consumo de APIs, pré-processar dados para bibliotecas de visualização como D3.js ou Chart.js.

A transformação básica

A conversão mais simples trata a primeira linha como cabeçalhos:

nome,idade,cidadeAlice,30,São PauloBob,25,Rio de Janeiro

Converte para:

[  { "nome": "Alice", "idade": 30, "cidade": "São Paulo" },  { "nome": "Bob", "idade": 25, "cidade": "Rio de Janeiro" }]

Observe que idade agora é um número. CSV não tem informação de tipo, então um bom conversor deve inferir tipos durante a conversão. O CSV to JSON Converter faz isso automaticamente.

Tratamento de delimitadores

A vírgula é o delimitador padrão, mas arquivos CSV frequentemente usam ponto e vírgula, tabs ou pipes — especialmente em locales europeus.

  • Delimitadores personalizados — Valores separados por tab usam \t
  • Campos entre aspas — Quando um campo contém o delimitador: "São Paulo, SP"
  • Aspas escapadas — Uma aspas dentro de um campo é duplicada
  • Quebras de linha — Campos entre aspas podem abranger várias linhas

Não tente dividir por vírgulas ingenuamente — use uma biblioteca de parsing CSV adequada.

Coerção de tipos

Como CSV não distingue entre 42 (número) e "42" (string), você precisa de uma estratégia:

function coerir(valor) {  if (valor === '') return null;  if (valor === 'true') return true;  if (valor === 'false') return false;  if (/^-?\d+(\.\d+)?$/.test(valor)) return Number(valor);  return valor;}

Dados aninhados

CSV é plano por design. Para estruturas aninhadas, use notação de pontos nos cabeçalhos (endereco.cidade) ou notação de colchetes (tags[0], tags[1]).

Erros comuns

  • Codificação de caracteres — Arquivos CSV podem ser UTF-8, Latin-1 ou Windows-1252.
  • Comprimentos de linha inconsistentes — Algumas linhas podem ter menos colunas que os cabeçalhos.
  • CSV sem cabeçalhos — Nem todos os arquivos CSV têm cabeçalhos.
  • Arquivos grandes — Não carregue um CSV de 2 GB na memória. Use parsers de streaming.
  • BOM — Alguns arquivos CSV começam com BOM UTF-8 que pode quebrar o parsing.

Experimente

Use uma ferramenta local para converter CSV para JSON — nenhuma dados é enviada.

Frequently asked questions

Qual é a diferença entre CSV e JSON?
CSV (Valores Separados por Vírgulas) é um formato tabular plano onde cada linha é uma coluna e os valores são separados por vírgulas. JSON (JavaScript Object Notation) é um formato hierárquico que suporta objetos aninhados, arrays e valores tipados.
Posso converter CSV com valores JSON aninhados de volta para CSV?
Não diretamente. CSV é um formato plano — não pode representar estruturas aninhadas.
Como lidar com arquivos CSV com vírgulas dentro dos valores?
Valores que contêm vírgulas devem ser cercados por aspas duplas.
É seguro converter dados CSV contendo chaves de API online?
Apenas se o conversor rodar inteiramente no seu navegador.