Como converter CSV para JSON: O guia completo para desenvolvedores
Domine a conversão de CSV para JSON com exemplos práticos, código em várias linguagens e um conversor online gratuito.
Como converter CSV para JSON: O guia completo para desenvolvedores
CSV (Comma-Separated Values) e JSON (JavaScript Object Notation) são dois dos formatos de dados mais comuns no desenvolvimento de software. O CSV é excelente para armazenar dados tabulares — pense em planilhas e exportações de bancos de dados. O JSON é o formato preferido para APIs, aplicações web e arquivos de configuração.
Converter entre esses formatos é uma tarefa que desenvolvedores enfrentam regularmente. Este guia apresenta tudo que você precisa saber sobre a conversão de CSV para JSON, incluindo múltiplas abordagens, exemplos de código e armadilhas comuns.
Entendendo os formatos
CSV
O CSV é um formato simples, baseado em linhas, onde cada linha representa um registro e os campos são separados por vírgulas (ou outro delimitador):
nome,idade,cidade,ativo
Alice,30,São Paulo,true
Bob,25,Rio de Janeiro,false
Charlie,35,Curitiba,true
Características principais:
- A primeira linha geralmente contém os cabeçalhos (nomes das colunas)
- Sem tipos de dados nativos (tudo é uma string)
- Sem aninhamento — dados estritamente planos e tabulares
- Compacto e eficiente para grandes conjuntos de dados
JSON
O JSON é um formato estruturado e hierárquico usando pares chave-valor e arrays:
[
{ "nome": "Alice", "idade": 30, "cidade": "São Paulo", "ativo": true },
{ "nome": "Bob", "idade": 25, "cidade": "Rio de Janeiro", "ativo": false },
{ "nome": "Charlie", "idade": 35, "cidade": "Curitiba", "ativo": true }
]
Características principais:
- Suporta objetos e arrays aninhados
- Tem tipos de dados distintos (string, number, boolean, null)
- Mais verboso, porém muito mais expressivo
- Nativo em JavaScript e amplamente suportado em todas as linguagens
Por que converter CSV para JSON?
Cenários comuns onde você precisa converter CSV para JSON:
- Desenvolvimento de APIs: Sua fonte de dados é um arquivo CSV, mas sua API retorna JSON.
- Migração de dados: Transferir dados de um sistema legado (exportações CSV) para uma aplicação moderna (baseada em JSON).
- Desenvolvimento frontend: Carregar dados CSV em uma aplicação JavaScript que espera JSON.
- Configuração: Converter configurações baseadas em planilhas em arquivos de configuração JSON.
- Análise de dados: Preparar dados CSV para bibliotecas de visualização baseadas em JavaScript.
Método 1: Converter CSV para JSON com JavaScript
function csvToJson(csv) {
const lines = csv.trim().split('\n');
const headers = lines[0].split(',').map(h => h.trim());
return lines.slice(1).map(line => {
const values = line.split(',').map(v => v.trim());
const obj = {};
headers.forEach((header, index) => {
let value = values[index];
if (value === 'true') value = true;
else if (value === 'false') value = false;
else if (!isNaN(value) && value !== '') value = Number(value);
obj[header] = value;
});
return obj;
});
}
const csv = `nome,idade,cidade
Alice,30,São Paulo
Bob,25,Rio de Janeiro`;
console.log(JSON.stringify(csvToJson(csv), null, 2));
Limitação: Esta abordagem básica não lida com campos entre aspas que contêm vírgulas. Para uso em produção, use uma biblioteca como Papa Parse.
Com Papa Parse (recomendado)
import Papa from 'papaparse';
Papa.parse(csvString, {
header: true,
dynamicTyping: true,
complete: (results) => {
console.log(JSON.stringify(results.data, null, 2));
}
});
Método 2: Converter CSV para JSON com Python
import csv
import json
def csv_to_json(csv_file, json_file):
with open(csv_file, 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
data = list(reader)
for row in data:
for key, value in row.items():
if value.lower() in ('true', 'false'):
row[key] = value.lower() == 'true'
elif value.isdigit():
row[key] = int(value)
with open(json_file, 'w', encoding='utf-8') as f:
json.dump(data, f, indent=2, ensure_ascii=False)
csv_to_json('data.csv', 'data.json')
Método 3: Converter CSV para JSON pela linha de comando
Com as ferramentas certas instaladas:
# Com csvkit
csvjson data.csv > data.json
# Com Miller
mlr --icsv --ojson cat data.csv > data.json
Lidando com desafios comuns do CSV
Campos entre aspas com vírgulas
nome,descricao,preco
"Widget A","Um widget grande, vermelho",9.99
A descrição contém uma vírgula dentro de aspas. Abordagens simples com split(',') vão falhar aqui. Sempre use um parser CSV adequado que lide com as regras de aspas da RFC 4180.
Diferentes delimitadores
Nem todos os arquivos "CSV" usam vírgulas. Alguns usam:
- Tabulações (TSV):
\t - Ponto e vírgula:
;(comum em locais europeus e no Brasil) - Pipes:
|
Certifique-se de que seu parser esteja configurado para o delimitador correto.
Problemas de codificação
Arquivos CSV de diferentes sistemas podem usar várias codificações de caracteres:
- UTF-8 (o mais comum, recomendado)
- UTF-8 com BOM (comum no Excel do Windows)
- Latin-1 / ISO-8859-1 (sistemas mais antigos)
Sempre especifique a codificação ao ler arquivos CSV para evitar caracteres corrompidos.
Valores ausentes ou excedentes
Dados CSV reais costumam ser bagunçados:
- Algumas linhas podem ter menos colunas que o cabeçalho
- Algumas células podem estar vazias
- Espaços extras podem estar presentes
Um conversor robusto deve lidar com isso graciosamente — preenchendo valores ausentes com null e removendo espaços.
Conversão de tipos: um ponto-chave
O CSV não tem conceito de tipos de dados — tudo é uma string. Ao converter para JSON, você geralmente quer:
| Valor CSV | Valor JSON |
|---|---|
"42" |
42 (número) |
"true" / "false" |
true / false (booleano) |
"" (vazio) |
null |
"olá" |
"olá" (string) |
Alguns conversores oferecem detecção automática de tipos, enquanto outros mantêm tudo como strings. Escolha de acordo com seu caso de uso.
Experimente nosso conversor CSV para JSON gratuito
Nosso Conversor CSV para JSON cuida de toda a complexidade para você:
- Cole seus dados CSV ou faça upload de um arquivo
- Detecta automaticamente cabeçalhos e tipos de dados
- Lida com campos entre aspas, diferentes delimitadores e codificação
- Gera JSON limpo e formatado, pronto para uso
- Funciona inteiramente no seu navegador — seus dados permanecem privados
Perfeito para conversões rápidas, testes de API, exploração de dados e depuração. Sem instalação, sem cadastro, sem limites.
Boas práticas para conversão CSV para JSON
- Sempre valide seu CSV primeiro: Verifique a consistência do número de colunas e as aspas corretas.
- Trate os cabeçalhos com cuidado: Certifique-se de que os cabeçalhos sejam chaves JSON válidas (sem espaços ou caracteres especiais — ou sanitize-os).
- Escolha o formato de saída correto: Array de objetos (o mais comum) ou objeto indexado (para buscas).
- Teste com casos extremos: Linhas vazias, caracteres especiais, valores muito longos.
- Considere o tamanho do arquivo: Para arquivos CSV muito grandes (>100 MB), use parsers de streaming em vez de carregar tudo na memória.
Conclusão
Converter CSV para JSON é uma tarefa rotineira, mas importante no desenvolvimento moderno. Seja usando bibliotecas de código, ferramentas de linha de comando ou um conversor online, o segredo é lidar corretamente com os casos especiais — campos entre aspas, conversão de tipos e codificação.
Para conversões rápidas e confiáveis, experimente nosso Conversor CSV para JSON — é grátis, rápido e lida com os casos complicados automaticamente.
Ferramentas relacionadas
Última atualização em 2026-09-27