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 JaneiroConverte 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.