Conversor de CSV para JSON

Converta CSV para JSON online — grátis, instantâneo e privado. Seu arquivo é processado diretamente no seu navegador, sem nunca ser enviado para nossos servidores.

Delimitador CSV
Resultado

Os arquivos convertidos e uma pré-visualização aparecerão aqui.

Pronto. Escolha um arquivo de tabela para converter.

Como funciona a conversão

  • A primeira linha é lida como cabeçalho — suas células se tornam os nomes dos campos no JSON, e cada linha seguinte se torna um objeto.
  • Escolha o delimitador correspondente aos seus dados — vírgula, ponto e vírgula ou tabulação.

Seu arquivo de tabela é convertido diretamente no seu navegador. Nada é enviado para o BroBroGo.

Perguntas frequentes

Como converter CSV para JSON?

Arraste seu arquivo CSV e clique em converter — o arquivo JSON fica pronto para download em segundos, acompanhado de uma prévia do resultado. Tudo roda localmente no seu dispositivo.

Qual é o tamanho máximo de arquivo suportado?

Até 8 MB, 10.000 linhas e 200 colunas por arquivo. Para conjuntos de dados maiores, recomendamos dividi-los em arquivos menores antes de converter.

O que essa página faz e por que ela é diferente

A página recebe um arquivo CSV – linhas de texto separadas por vírgula, ponto e vírgula ou tabulação – e produz um arquivo JSON, que é um array de objetos onde cada linha se torna um objeto e cada coluna uma chave. O usuário arrasta o arquivo ou o seleciona do dispositivo, ajusta o delimitador (se o CSV usar algo diferente de vírgula), visualiza uma prévia e faz o download.

Três pontos tornam esta página distinta das páginas irmãs (como JSON → CSV ou Excel → JSON).

Sem tipos na origem, tipados apenas no destino. CSV armazena tudo como texto plano; JSON suporta números, booleanos, null e estruturas aninhadas. Todo campo CSV chega como string, então números (preços, quantidades), datas e identificadores com zero à esquerda (CEP, códigos de produto) não se tornam automaticamente valores numéricos ou de data no JSON – permanecem strings a menos que você os trate manualmente após o download.

Sem aninhamento possível. Como CSV é estritamente uma tabela plana, a conversão produz um array plano de objetos planos. JSON hierárquico (objetos dentro de objetos) não pode ser criado a partir de um CSV sem regras adicionais que a ferramenta não aplica. (O sentido inverso – JSON para CSV – precisa achatar campos aninhados, resultando em nomes de coluna pontilhados como endereco.cidade.)

Delimitador importa. O usuário precisa especificar se o CSV usa vírgula, ponto e vírgula ou tabulação. Páginas irmãs para entrada JSON ou Excel não exigem escolha de delimitador. A vírgula é o delimitador padrão.

Além disso, vírgulas embutidas e quebras de linha dentro de campos são frágeis. As regras de citação do CSV não são universalmente seguidas; vírgulas dentro de campos entre aspas, quebras de linha em células e aspas não escapadas são fontes comuns de falha de análise que afetam esta conversão mais do que outras mudanças de formato.

Como a conversão funciona – entrada, escolhas e saída

A ferramenta aceita um único arquivo CSV, JSON ou XLSX. Esta página converte exclusivamente na direção CSV para JSON. Se o usuário enviar um JSON ou XLSX, a ferramenta primeiro interpreta esses formatos como tabelas – por exemplo, um JSON de array de objetos se torna uma tabela com as chaves como cabeçalhos – e depois converte para JSON novamente (na prática, um recondicionamento).

Escolhas do usuário:

  • Delimitador CSV: Comma (vírgula), Semicolon (ponto e vírgula) ou Tab (tabulação). A vírgula é o padrão. A seleção correta é crucial para evitar erros de parsing.

Saída:

  • Um arquivo JSON.
  • Uma prévia dos dados convertidos, exibindo as primeiras 8 linhas e 8 colunas.
  • Número de linhas e colunas da tabela original.
  • Tamanho do arquivo de saída.

O processamento ocorre inteiramente no navegador. Nenhum dado é enviado a servidores – um ponto importante para quem lida com informações sensíveis, como listas de contatos, dados financeiros ou registros de clientes. O navegador analisa o arquivo e escreve a saída convertida localmente no dispositivo.

Limites:

  • A ferramenta aceita apenas um arquivo por vez.
  • O tamanho máximo do arquivo é de 8 MB. Arquivos maiores que isso exibirão a mensagem: This file is too large. Use a file under ‹max›..
  • O número máximo de linhas é 10.000 e o número máximo de colunas é 200.
  • Se a conversão demorar mais de aproximadamente 12 segundos, ela será interrompida com a mensagem: This conversion is taking too long. Try a smaller file..

Comportamento do CSV:

  • A saída CSV usa a primeira linha como cabeçalhos.
  • Datas se tornam texto ISO.
  • Linhas vazias são descartadas.

Comportamento do JSON:

  • A saída JSON é um array de objetos, onde as chaves são fornecidas pela linha de cabeçalho.
  • Cabeçalhos duplicados recebem sufixos como _2, _3.
  • Números, booleanos e datas mantêm seus tipos, não sendo convertidos para string.
  • A entrada JSON com objetos aninhados tem seus nomes de coluna achatados com pontos (ex: address.city).

Comportamento do Excel:

  • Apenas a primeira planilha é lida.
  • A planilha do arquivo de saída é nomeada "Sheet1".
  • As células são escritas como valores simples, sem fórmulas ou estilos. Os tipos de valor são preservados.

Mensagens de Erro:

  • Choose a CSV, JSON or XLSX file.
  • This file is too large. Use a file under ‹max›.
  • This CSV could not be parsed.
  • This JSON is invalid or not table-shaped.
  • This Excel file could not be opened.
  • This file has no table rows.
  • Conversion cancelled.
  • Could not convert this file.
  • This conversion is taking too long. Try a smaller file.

As limitações fundamentais do CSV herdadas no JSON

CSV é um formato de texto sem metadados. Cada linha representa um registro, cada coluna um campo, e o arquivo não carrega informação sobre tipo, tamanho ou restrição dos dados. Ao converter para JSON, essa ausência de tipo se reflete diretamente: números, booleanos e datas mantêm seus tipos, mas outros valores permanecem strings.

Um exemplo concreto: suponha um CSV de produtos:

id,nome,preco,estoque
001,Teclado Mecânico,199.90,150
002,Mouse Óptico,89.50,300

A saída JSON será:

[
  {
    "id": "001",
    "nome": "Teclado Mecânico",
    "preco": 199.90,
    "estoque": 150
  },
  {
    "id": "002",
    "nome": "Mouse Óptico",
    "preco": 89.50,
    "estoque": 300
  }
]

Observe que id (com zero à esquerda) é uma string, enquanto preco e estoque são números. Se você carregar esse JSON em um ambiente que faz coerção automática de tipos (como a maioria dos parsers JavaScript, Python json.loads com parse_float padrão, ou bibliotecas de serialização), os zeros à esquerda serão preservados porque o valor é string. No entanto, se você aplicar Number() ou parseInt() sobre id, o zero à esquerda será perdido – e 001 se tornará 1.

Esse comportamento é intencional: a ferramenta não tenta adivinhar tipos. Em CSV, não há como distinguir entre a string "001" e o número 1; ambos são representados como texto. Para manter a integridade de dados como códigos postais, números de documento ou códigos de produto com zeros à esquerda, a conversão para string é a escolha segura.

Outra limitação: quebras de linha dentro de campos CSV citados são preservadas como no JSON. Se um campo contém múltiplas linhas, o JSON conterá uma string com caracteres de nova linha escapados. Isso pode surpreender quem espera um valor limpo.

Tipos de dados: texto vs. valores tipados e zeros à esquerda

O contraste entre CSV (texto) e JSON (tipagem explícita) é a fonte mais comum de confusão. No JSON, você pode ter "preco": 199.90 (número) em vez de "preco": "199.90" (string). Mas o CSV não fornece informação de tipo. A ferramenta trata os valores como strings, porque:

  • Não há padrão universal para indicar tipos em CSV (exceto convenções informais como usar .0 para float, mas mesmo isso não é confiável).
  • Tentar inferir tipos quebraria dados com zeros à esquerda, que são comuns em códigos de produtos, códigos postais brasileiros (ex.: 01001-000), IDs alfanuméricos e números de telefone.
  • Datas em CSV podem estar em formatos variados (dd/mm/aaaa, aaaa-mm-dd, etc.); a ferramenta as converte para o formato de texto ISO 8601 (AAAA-MM-DD).

Se você precisa que 199.90 seja um número no JSON, deve converter manualmente após o download, usando um simples map em JavaScript ou um script de pós-processamento. Da mesma forma, se o CSV contém colunas com valores booleanos como true / false (escritos como strings), eles sairão como "true" e "false" – strings, não booleanos JSON.

Zeros à esquerda: um caso emblemático

Um CEP brasileiro como 01234-567 é uma string que começa com zero. Num CSV, ele aparece como 01234-567. Ao converter para JSON, a ferramenta gera "01234-567". Se algum parser automático transformasse isso em número, o zero à esquerda seria descartado e o CEP se tornaria 1234-567, perdendo a formatação original. A preservação como string é deliberada e essencial para integridade de dados em contextos reais.

Delimitadores e regras de citação – armadilhas comuns

A escolha do delimitador é o primeiro ponto de falha. O usuário deve indicar se o arquivo usa vírgula, ponto e vírgula ou tabulação. Em muitos CSVs brasileiros, o ponto e vírgula é o separador padrão (devido ao uso da vírgula como separador decimal). Se o usuário selecionar vírgula para um CSV com ponto e vírgula, a ferramenta interpretará cada linha como tendo um único campo (já que não encontra vírgulas), gerando um JSON com objetos de uma propriedade – provavelmente inútil.

Regras de citação: O padrão RFC 4180 define que campos contendo o delimitador, quebras de linha ou aspas duplas devem ser envolvidos por aspas duplas, e aspas duplas dentro do campo são escapadas com um par de aspas. Muitos CSVs reais desrespeitam essas regras. Exemplo clássico:

nome,descrição
Caneta,"Azul, ponta fina"

Aqui, "Azul, ponta fina" é um campo citado; a vírgula interna não deve ser interpretada como delimitador. A ferramenta lida com esse caso corretamente, desde que as aspas estejam no padrão. Mas se o CSV for mal formatado (aspas abertas não fechadas, escape incorreto), o parsing falha.

Quebras de linha em campos citados: Um campo pode conter uma quebra de linha:

nome,observação
João,"Cliente desde 2020
Segundo contato: Maria"

Isso é válido em CSV (com aspas). A ferramenta preserva a quebra como na string JSON. Contudo, muitos CSVs gerados por sistemas legados não citam corretamente essas quebras, resultando em linhas quebradas e colunas desalinhadas.

Tabulação como delimitador: TSV (Tab-Separated Values) é comum em exportações de bancos de dados. A ferramenta suporta tabulação, mas se o arquivo misturar tabulações e espaços, o parsing pode falhar.

Mensagens de erro e limites de arquivo

A ferramenta implementa verificações claras para situações comuns de falha. As mensagens são exibidas na interface:

  • "This CSV could not be parsed." – Ocorre quando o arquivo tem erros de citação, número inconsistente de colunas entre linhas, ou outro problema estrutural que impede a interpretação como tabela.
  • "This file has no table rows." – Quando o CSV contém apenas cabeçalho ou linhas vazias, sem dados.
  • "This table has more than ‹max› rows." e "This table has more than ‹max› columns." – Limites de dimensão. O valor exato de ‹max› é 10.000 linhas e 200 colunas.
  • "This file is too large. Use a file under ‹max›." – Limite de tamanho de arquivo, 8 MB.
  • "Choose a CSV, JSON or XLSX file." – Se o tipo de arquivo não for reconhecido (ex.:.pdf,.txt sem extensão).
  • "This conversion is taking too long. Try a smaller file." – Timeout de processamento, que ocorre após cerca de 12 segundos.

Os limites existem porque o processamento é client-side, sem servidor para escalar. Para arquivos além dos limites, a recomendação é dividir o CSV em partes menores ou usar uma ferramenta server-side.

FAQ

1. O JSON gerado mantém os zeros à esquerda dos meus códigos? Sim. A ferramenta preserva zeros à esquerda, pontos e traços, tratando os valores como strings. Isso inclui CEP, CPF, códigos de produto e IDs numéricos.

2. Por que o preço aparece como "199.90" em vez de 199.90 no JSON? Porque CSV não informa tipos. A ferramenta trata todos os valores do CSV de origem como strings. Para obter números, você precisa converter manualmente após o download, por exemplo com map(item => ({...item, preco: Number(item.preco) })) em JavaScript.

3. Meu CSV tem vírgula como separador decimal. Como devo configurar? Se seu CSV usa ponto e vírgula como delimitador (padrão brasileiro), selecione "Semicolon". Se usa vírgula como delimitador e ponto como decimal (padrão americano), selecione "Comma". A ferramenta não interpreta vírgulas como decimais; o valor 1,5 será tratado como string "1,5". Para obter número, pós-processe substituindo vírgula por ponto e convertendo. A página oferece uma escolha de delimitador: Vírgula, Ponto e Vírgula ou Tab (vírgula é o padrão).

4. O que acontece se meu CSV tem linhas com número diferente de colunas? A ferramenta tenta analisar, mas se a variação for grande (ex.: uma linha com 5 campos, outra com 3), é provável que retorne o erro This CSV could not be parsed.. Para evitar, normalize o CSV antes: preencha campos vazios com string vazia.

5. Posso converter um JSON de volta para CSV na mesma página? Não. Esta página converte apenas CSV para JSON.

6. Dá para converter um arquivo Excel (.xlsx) diretamente? Sim, a ferramenta aceita XLSX como entrada. Ela lê apenas a primeira planilha e converte para JSON, seguindo as mesmas regras: valores numéricos do Excel viram números no JSON, mas texto permanece texto. Cuidado com datas: células de data no Excel viram números seriais (ex.: 45000) e não uma string formatada. Prefira converter a coluna de data para texto no Excel antes de importar.