Conversor de CSV para JSON
Faça upload de um arquivo CSV ou cole os dados para converter para o formato JSON
Solte o arquivo CSV aqui, ou clique para selecionar
O que é CSV para JSON?
CSV para JSON é uma ferramenta online de conversão de formato de dados que converte dados CSV (valores separados por vírgulas) para o formato JSON (notação de objetos JavaScript).
CSV é um formato de dados tabular comum, amplamente utilizado em planilhas e exportações de bancos de dados. JSON é o formato de troca de dados mais popular em aplicações web modernas, conhecido por sua estrutura clara e fácil análise.
Com esta ferramenta, você pode converter rapidamente dados CSV em arrays ou objetos JSON para uso em programação e processamento de dados.
Como usar
Como usar
- Cole ou digite dados CSV no painel de entrada à esquerda
- Selecione o delimitador adequado (vírgula é o padrão)
- Escolha se a primeira linha deve ser usada como nomes de campo
- O painel à direita gera automaticamente o resultado em JSON
Notas sobre análise de CSV
- Verifique o delimitador, o tratamento de aspas e as configurações de linha de cabeçalho antes de confiar na saída JSON.
- Arquivos CSV grandes podem conter linhas em branco, vírgulas embutidas ou quebras de linha dentro de células entre aspas. Visualize algumas linhas após a conversão.
Casos de uso
Princípio técnico
A análise de CSV segue a gramática IETF RFC 4180: cada registro termina com CRLF (alguns dialetos aceitam LF ou CR), cada registro contém campos separados por um delimitador (vírgula na RFC, mas TSV, ponto e vírgula e pipe são variantes amplamente utilizadas), e qualquer campo que contenha o delimitador, um CR, um LF ou uma aspa dupla DEVE ser envolvido em aspas duplas com aspas internas escapadas por duplicação (Hello "world" se torna "Hello ""world"""). O analisador desta página é uma máquina de estados com quatro estados — field_start, in_unquoted, in_quoted, after_quote — e processa a entrada em uma única passagem O(n) sobre o fluxo de caracteres, de modo que um CSV de 10 MB com 100.000 linhas é concluído bem menos de um segundo em um laptop típico, sem nunca alocar um array de tokens intermediário por linha.
A codificação requer tratamento explícito: um BOM UTF-8 (EF BB BF) no início do arquivo é removido antes da análise, caso contrário o primeiro nome de cabeçalho começaria silenciosamente com o ponto de código invisível U+FEFF e as verificações de igualdade do JSON.parse downstream falhariam. Exportações do Excel no Windows ainda emitem CRLF e frequentemente UTF-8 com BOM, enquanto o Numbers do macOS e a maioria das ferramentas Unix usam LF sem BOM por padrão. Planilhas europeias comumente exportam arquivos delimitados por ponto e vírgula porque a vírgula é um separador decimal em muitas localidades (49,90 EUR em vez de 49.90), por isso o seletor de delimitador tem vírgula como padrão, mas expõe tabulação, ponto e vírgula e pipe como escolhas de primeira classe. A alternância primeira-linha-como-cabeçalho altera o formato de saída de um array de objetos (chaves de cabeçalho -> valores string) para um array de arrays, correspondendo aos dois padrões comuns de ingestão para código downstream.
Os valores dos campos são emitidos como strings, não como tipos inferidos — CSV não possui esquema, então 01234 (um ID com zero à esquerda), 1e10 (uma string com aparência de número de telefone que o JSON.parse converteria para número) e 2024-13-45 (uma data malformada) todos permanecem inalterados. Isso é intencional: uma API tipada downstream pode aplicar zod, Joi ou uma camada de coerção manual com regras explícitas, mas não pode recuperar um zero à esquerda que o conversor já removeu. A saída é gerada via JSON.stringify(rows, null, 2) e renderizada através de um realçador de sintaxe; o CSV de origem é lido com FileReader.readAsText() em um Blob, nunca enviado a um backend, então exportações de RH, registros financeiros e listas de clientes podem ser reformulados sem sair da sessão do navegador.
- Gramática RFC 4180: campos com delimitador/CR/LF/" devem ser colocados entre aspas; aspas internas são duplicadas como "".
- Máquina de estados O(n) de passagem única com estados: field_start, in_unquoted, in_quoted, after_quote.
- BOM UTF-8 (EF BB BF / U+FEFF) é removido no início do arquivo para manter as chaves de cabeçalho limpas.
- Planilhas europeias frequentemente usam ; como delimitador porque , é a marca decimal nas configurações de localidade.
- Primeira-linha-como-cabeçalho alterna a saída entre Array<Record<string,string>> e Array<Array<string>>.
- Todos os valores de campo permanecem strings; IDs com zero à esquerda como 01234 sobrevivem apenas porque nenhuma inferência de tipo é executada.
- FileReader.readAsText() processa o Blob localmente; nada é enviado - seguro para exportações de RH/finanças/staging.
Exemplos
CSV básico com cabeçalho -> array JSON de objetos
CSV input:
name,age,city
Alice,28,New York
Bob,35,London
Carol,42,Tokyo
JSON output:
[
{ "name": "Alice", "age": "28", "city": "New York" },
{ "name": "Bob", "age": "35", "city": "London" },
{ "name": "Carol", "age": "42", "city": "Tokyo" }
]Campos entre aspas com vírgulas internas
CSV input:
id,product,description
1,"Notebook, A5","Hard cover, 200 pages"
2,Pen,"Black ink, 0.5mm"
JSON output:
[
{ "id": "1", "product": "Notebook, A5", "description": "Hard cover, 200 pages" },
{ "id": "2", "product": "Pen", "description": "Black ink, 0.5mm" }
]TSV (delimitado por tabulação) sem cabeçalho
TSV input (delimiter = Tab, header off):
101 Alice 98.5
102 Bob 87.0
103 Carol 92.3
JSON output:
[
["101", "Alice", "98.5"],
["102", "Bob", "87.0"],
["103", "Carol", "92.3"]
]Delimitador ponto e vírgula (exportações de planilhas europeias)
CSV input (delimiter = ;):
product;price_eur;stock
Keyboard;49,90;120
Mouse;19,90;345
JSON output:
[
{ "product": "Keyboard", "price_eur": "49,90", "stock": "120" },
{ "product": "Mouse", "price_eur": "19,90", "stock": "345" }
]
Note: números permanecem como strings - faça o cast no seu código posterior.Perguntas frequentes
Quais variantes de CSV são suportadas?
CSV padrão RFC 4180: separador por vírgula, campos entre aspas duplas e aspas duplas duplicadas para escape. Separadores por tabulação (TSV) e ponto e vírgula funcionam mudando o separador. Diferentes terminadores de linha (LF/CRLF/CR) são tratados automaticamente.
Como os cabeçalhos são tratados?
Se você ativar 'a primeira linha é cabeçalho', o parser usa cada célula do cabeçalho como chave JSON daquela coluna — produzindo um array de objetos. Com cabeçalhos desativados, o parser produz um array de arrays. Células de cabeçalho vazias recebem uma chave numérica como placeholder.
Como os tipos são inferidos?
Por padrão, tudo é string. Ative 'auto type' para tentar interpretar números, booleanos (true/false) e null. Números com zeros à esquerda (00123, 0042) viram strings para não perder o prefixo — use isso para IDs e CEPs.
E se um campo contém vírgula ou quebra de linha?
Coloque o campo entre aspas duplas: "Smith, John" ou "linha um\nlinha dois". Aspas duplas embutidas ficam duplicadas: "Ele disse ""oi""". O parser lida com tudo isso; se uma linha estiver quebrada, geralmente é por causa de aspas desbalanceadas.
A conversão é feita localmente ou em servidor?
Localmente. O parsing roda no seu navegador usando JavaScript. O CSV colado não sai da página. Arquivos grandes podem deixar o navegador lento; se uma colagem ultrapassar dezenas de MB, divida antes de processar.
Preserva a ordem das colunas?
Sim — cada linha vira um objeto JSON cuja ordem das chaves segue a ordem dos cabeçalhos do CSV, e JSON.stringify nas engines modernas preserva a ordem de inserção. Se sua ferramenta seguinte ler JSON sem preservar essa ordem, é uma limitação dela.
Como lido com datas?
As datas continuam como strings. A inferência automática não interpreta formatos arbitrários de data porque não há padrão sem ambiguidade (1/2/2024 é 2 de janeiro nos EUA e 1 de fevereiro na Europa). Converta as datas para ISO 8601 (YYYY-MM-DD) antes de importar se você precisar de objetos Date nativos depois.
Ferramentas relacionadas
Codificador de Entidades HTML
Codificador e decodificador de entidades HTML online gratuito convertendo caracteres especiais em entidades HTML. Previna ataques XSS, garanta exibição segura de HTML.
Conversor de XML para JSON
Conversor online gratuito de XML para JSON com indentação personalizável. Converta dados XML em JSON bem formatado instantaneamente no navegador.
Conversor Unicode
Codificador e decodificador Unicode online gratuito suportando múltiplos formatos: \uXXXX, &#xXXXX;, etc. Gerencie texto internacionalizado facilmente, resolva problemas de codificação.
Decodificador de Código de Barras
Decodificador de código de barras online gratuito. Carregue imagens, arraste e solte, ou cole para escanear e decodificar códigos de barras. Suporta CODE128, EAN13, EAN8, UPC, CODE39. Tudo no navegador.
Empacotar e Compactar ZIP
Ferramenta de empacotamento e compactação ZIP online gratuita. Upload de múltiplos arquivos, arrastar e soltar para adicionar, download ZIP com um clique. Processamento local baseado em navegador, privacidade protegida.
Ferramenta de Escape JSON
Ferramenta de escape JSON online gratuita para escape e unescape rápido de strings JSON. Gerencie aspas, novas linhas, tabulações e caracteres especiais, fácil incorporação em código.
