Conversor CSV ↔ JSON (compatível com RFC 4180)
Cole CSV ou JSON. O conversor analisa CSV compatível com RFC 4180 (trata campos entre aspas com vírgulas, aspas escapadas, valores multilinhas). Para JSON para CSV, aceita tanto array de objetos (usa chaves como cabeçalhos) quanto array de arrays.
[
{
"name": "Alice",
"age": "30",
"city": "Tokyo"
},
{
"name": "Bob",
"age": "25",
"city": "Seoul"
},
{
"name": "Carol",
"age": "42",
"city": "Madrid"
}
]Como funciona
Por que o RFC 4180 importa
O CSV parece simples, mas tem casos extremos: um campo contendo uma vírgula deve ser colocado entre aspas; um campo contendo uma aspa deve escapá-la como aspas duplas; um campo pode conter quebras de linha se estiver entre aspas. Parsers ingênuos de separar por vírgula quebram em dados do mundo real. Este conversor implementa a gramática RFC 4180 exatamente.
Parsers ingênuos também quebram em exportações do Excel que usam ponto e vírgula (comum em locais europeus onde ',' é separador decimal) ou tabs (TSV). O menu suspenso de delimitador trata as quatro variantes comuns.
Formatos JSON para saída
Array de objetos (padrão com linha de cabeçalho): cada linha vira {coluna: valor}. O formato JSON mais comum, fácil de consumir em qualquer linguagem.
Array de arrays (linha de cabeçalho desativada): cada linha vira [v1, v2, ...]. Útil quando as colunas não têm nome ou você quer uma estrutura posicional.
De JSON para CSV, o conversor detecta qual formato você tem. Objetos: extrai chaves únicas em todas as linhas para cabeçalhos. Arrays: escreve as linhas como estão.
Armadilhas comuns
Localidade do Excel: em algumas instalações europeias do Excel, o delimitador padrão é ';' e não ','. Se seu CSV parece uma coluna gigante quando importado, mude para ; no menu suspenso de delimitador.
BOM (Marca de Ordem de Bytes): algumas exportações do Excel prefixam o arquivo com U+FEFF. Passamos isso adiante; se seu parser downstream falhar, remova os primeiros 3 bytes.
Quebra de linha final: um CSV terminando em '\n' adiciona uma última linha vazia em alguns parsers; filtramos linhas vazias automaticamente.
Números como strings: CSV não tem tipos — '42' vira a string "42" em JSON. Se você precisar de valores tipados, execute uma etapa de pós-processamento que converte colunas numéricas conhecidas.
Perguntas frequentes
›Trata campos entre aspas com vírgulas?
Sim — as aspas RFC 4180 são totalmente suportadas. "Silva, João" é analisado como um único campo.
›Como aspas escapadas são tratadas?
Segundo o RFC 4180, um '"' literal dentro de um campo entre aspas é escrito como '""' (duas aspas). O parser lida com isso corretamente.
›Os campos podem conter quebras de linha?
Sim, quando entre aspas. "linha 1\nlinha 2" dentro de aspas é tratado como um único campo com quebra de linha incorporada.
›Suporta BOM (UTF-8)?
BOM passa adiante. Se seu consumidor downstream não o tolerar, remova os primeiros 3 bytes (EF BB BF) do CSV.
›E arquivos grandes?
O navegador lida com alguns MB sem problemas. Para CSVs muito grandes (100MB+), use um parser de streaming como Papa Parse com um worker, ou uma ferramenta de linha de comando.
›Os números são preservados como números?
CSV → JSON: todos os valores viram strings (CSV não tem tipos). JSON → CSV: números viram células CSV sem aspas. Para obter JSON tipado, pós-processe as colunas que você sabe que são numéricas.
›Por que meu JSON mostra strings vazias em vez de null?
CSV representa valores ausentes como células vazias. Mapeamos para strings vazias. Para obter null em JSON, pós-processe a saída.
›Os dados saem do meu navegador?
Não. A conversão é feita localmente; nada é enviado a um servidor.
Ferramentas relacionadas
Última atualização: