Conversor de CSV para JSON

Converta valores separados por vírgulas em arrays ou objetos JSON.

Sobre CSV → JSON

O CSV (Comma-Separated Values) é um formato de dados tabular simples, enquanto o JSON (JavaScript Object Notation) é o formato padrão das APIs e aplicativos web. Esta ferramenta converte entre os dois, tratando campos entre aspas, caracteres escapados e vários separadores. Quando « A primeira linha é um cabeçalho » está marcado, os nomes das colunas viram as chaves dos objetos JSON.

Como funciona

  1. Cole seu CSV : solte seu texto CSV no campo de entrada. Escolha o separador que corresponde aos seus dados (vírgula, tabulação, ponto-e-vírgula ou barra vertical) na lista suspensa.
  2. Configure as opções : marque « Primeira linha = cabeçalho » se a primeira linha contém nomes de colunas (eles se tornarão as chaves JSON). Marque « Detecção automática de tipos » para converter números e booleanos automaticamente.
  3. Converta : cada linha CSV vira um objeto JSON com as chaves do cabeçalho, ou um array simples se não houver cabeçalho.
  4. Copie ou baixe : copie o array JSON ou baixe um arquivo .json para usar em código ou APIs.

Por que converter CSV em JSON ?

O CSV é o formato universal de exportação de planilhas, bancos de dados e ferramentas de análise, mas a maioria das APIs modernas, aplicativos JavaScript e bancos NoSQL funciona em JSON. Converter exportações CSV do Google Sheets, Excel, Airtable ou de ferramentas de banco de dados em JSON é uma tarefa diária em engenharia de dados, desenvolvimento web e integração de APIs. Este conversor trata os casos comuns : campos entre aspas contendo vírgulas, aspas escapadas dentro, quebras de linha Windows (CRLF) e colunas mistas de número/string com detecção inteligente de tipos.

Funcionalidades

O que é conversão CSV para JSON?

A conversão CSV para JSON pega um arquivo de texto tabular plano (linhas de valores separados por vírgula) e emite um array JSON onde cada linha se torna um objeto indexado pelos cabeçalhos de coluna. Os mesmos dados ('name,age' nova linha 'Alice,30' nova linha 'Bob,25') passam de um CSV de duas linhas para um array JSON de dois objetos, cada um com campos name e age. A conversão é reversível (json-to-csv cobre a direção reversa).

CSV permanece o formato de exportação universal para planilhas (Excel, Google Sheets, Numbers, LibreOffice Calc) e bancos de dados SQL (mysqldump, pg_dump). JSON é o formato dominante para APIs web, bancos de dados NoSQL e aplicações JavaScript. Converter entre eles é a tarefa de interoperabilidade mais comum em engenharia de dados, pipelines ETL e trabalho front-end.

Este conversor lida com quatro delimitadores (vírgula, ponto e vírgula, tab, pipe), linhas de cabeçalho opcionais e detecção automática de tipos numéricos e booleanos. Ele implementa as regras de citação RFC 4180 para que campos citados com vírgulas, newlines ou aspas duplicadas embutidas sejam analisados corretamente. A saída é JSON formatado com recuo de dois espaços pronto para cópia ou download.

O que há dentro do conversor

A barra de controle superior expõe os três botões que mudam o comportamento de análise: um dropdown de delimitador (vírgula, ponto e vírgula, tab ou pipe), uma caixa Primeira linha é cabeçalho, e uma caixa Detecção automática de tipos. Primeiro escolha o delimitador que corresponde aos seus dados de origem, depois decida se a linha de cabeçalho deve ser promovida a chaves de objeto ou mantida como linha de dados.

As duas áreas de texto exibem a entrada CSV à esquerda e a saída JSON à direita. A saída é somente leitura e atualiza após clicar em Converter para JSON. Um contador de linhas abaixo dos botões mostra quantas linhas o parser reconheceu; se diferir do esperado, verifique novamente o delimitador ou procure aspas desbalanceadas na sua entrada.

Cinco botões de ação ficam abaixo dos painéis: Converter para JSON executa a conversão, Copiar escreve a saída para sua área de transferência, Amostra carrega um CSV de amostra para que você veja o formato esperado, Limpar esvazia ambas as áreas de texto, e Baixar salva o JSON como um arquivo .json. Também há uma tabela de pré-visualização oculta que aparece quando você clica em Amostra, mostrando as linhas analisadas em um layout tabular.

História e contexto

Cartões perfurados Hollerith inauguram dados tabulares (1890)

O Censo dos EUA de 1890 funcionou nos cartões perfurados de Herman Hollerith, cada cartão segurando colunas de dados de posição fixa. A ideia de linhas-e-colunas como formato de dados precede computadores digitais em 50 anos. Todo formato tabular moderno (CSV, TSV, Excel, Parquet) traça sua forma retangular aos cartões perfurados. A Computing-Tabulating-Recording Company que cresceu das patentes de Hollerith se tornou IBM em 1924.

CSV emerge do I/O dirigido por listas do FORTRAN (1972)

O compilador FORTRAN da IBM em 1972 introduziu I/O dirigido por listas onde valores separados por vírgulas podiam ser lidos em múltiplas variáveis em uma chamada. A convenção se espalhou para BASIC, formatos de relatório de mainframe e a computação pessoal primitiva. Pelos anos 80, a maioria dos programas de planilha (VisiCalc, Lotus 1-2-3, Excel) podiam exportar texto separado por vírgulas. Não havia uma única especificação, então dialetos proliferaram.

RFC 4180 padroniza CSV (2005)

O RFC 4180 de Yakov Shafranovich, publicado em outubro de 2005, deu ao CSV sua primeira especificação amplamente citada. Definiu o uso de terminadores de linha CRLF, escape de aspas duplas (uma aspa dentro de um campo citado é escrita como duas aspas), e um único caractere delimitador. O RFC era Informacional, não Proposed Standard, então muitas ferramentas ainda se desviam dele, mas RFC 4180 permanece a referência canônica para como se parece um CSV bem-formado.

JSON especificado (2001) e padronizado (2013)

Douglas Crockford documentou JSON em abril de 2001. Era um formato óbvio para serializar objetos JavaScript mas rapidamente se espalhou para todas as linguagens. ECMA-404 o padronizou em 2013, RFC 8259 substituiu o RFC 4627 em 2017. O formato é intencionalmente mínimo (sem comentários, sem schema), que é exatamente por que se tornou a lingua franca das APIs.

Variantes CSV específicas de localização emergem (1990s em diante)

Em países onde a vírgula é usada como separador decimal (França, Alemanha, maior parte da Europa continental, Brasil), o Excel exporta CSV com um ponto e vírgula como delimitador para evitar conflito com vírgulas decimais. Em países anglófonos a vírgula fica. A mesma instalação Excel produz CSV diferente dependendo da localização do sistema operacional, é por isso que este conversor expõe um dropdown de delimitador em vez de adivinhar.

PapaParse e a ascensão do CSV em navegador (2014)

PapaParse de Matt Holt (2014) se tornou o parser CSV JavaScript de facto. Seu design (autodetecção de delimitador, lidar com arquivos grandes com web workers, conformidade rigorosa com RFC 4180) se tornou o template para cada conversor em navegador que se seguiu. Esta ferramenta implementa um parser mais leve sintonizado para os quatro delimitadores comuns e os casos RFC 4180 mais citados, sem os workers (que são desnecessários para as entradas de kilobyte a megabyte típicas desta UI).

Fluxos de trabalho práticos

Exportação de planilha para corpo de requisição API

Você exportou uma lista de contatos de 200 linhas do Google Sheets como CSV. Cole aqui, deixe Primeira linha é cabeçalho marcado, clique em Converter. O array JSON de saída está pronto para POST a um endpoint de API CRM que espera criação em massa.

Arquivo de seed de banco de dados a partir de CSV

Você tem um CSV de produtos de um sistema legado. Converta para JSON, salve como seed.json, e carregue-o em MongoDB ou DynamoDB com mongoimport ou AWS CLI. O array JSON mapeia diretamente para uma coleção sem schema explícito.

Dados para bibliotecas de gráficos (D3, Chart.js, Recharts)

D3.js aceita CSV diretamente via d3.csv, mas Chart.js e Recharts querem JSON. Converta seu CSV de vendas mensais aqui, jogue o array resultante em seu componente React, e passe para uma prop de gráfico. A opção Detecção automática de tipos garante que colunas numéricas se tornem números reais, não strings.

Dados mock para um frontend

Ao construir UI antes do backend existir, dados mock vivem bem em um arquivo JSON importado com require ou fetch. Esboce seus registros em uma planilha, exporte CSV, converta aqui, e cole em mockData.json. Itere editando a planilha (que é mais fácil que editar JSON à mão) e reconvertendo.

Análise de arquivo de log com jq

Alguns logs de servidor têm sabor CSV. Converta para JSON, depois pipe através do jq para filtrar, ordenar e agregar. A conversão preenche a lacuna entre logs de arquivo plano e ferramentas de processamento de stream que esperam registros estruturados.

Importação em massa de CMS

Plataformas CMS headless (Contentful, Sanity, Strapi, Directus) tipicamente aceitam importações JSON. Editores escrevem conteúdo em uma planilha familiar, você converte aqui e executa um script de importação único. A linha de cabeçalho se torna os nomes de campo que mapeiam para seu schema CMS.

Armadilhas comuns

Campos citados com vírgulas internas

Uma linha como 1,"Smith, John",30 tem três campos lógicos, não quatro, porque a vírgula dentro do campo citado é dado, não delimitador. Este parser respeita o escape de aspas duplas RFC 4180, mas CSV malformado (aspas de fechamento ausentes, aspas não correspondentes) produzirá JSON sem sentido. Use um linter CSV ou importe o arquivo em uma planilha primeiro para trazer à superfície erros estruturais.

Newlines embutidos dentro de campos citados

RFC 4180 permite newlines literais dentro de campos com aspas duplas, mas muitos parsers simples baseados em linha tratam cada newline como separador de registro. Se seu CSV tem comentários multilinha ou endereços dentro de aspas, a contagem de linhas pode não corresponder à contagem de linhas visual. Este conversor as lida corretamente, mas ferramentas downstream podem não.

Byte Order Mark (BOM) no início do arquivo

Ferramentas Windows (especialmente Excel) às vezes prefixam arquivos CSV UTF-8 com um BOM de três bytes (EF BB BF). Quando você copia de um arquivo prefixado com BOM, o primeiro cabeçalho ganha um prefixo invisível que descasa 'name' com 'name' em seu código. Abra o arquivo em um editor hexadecimal ou remova BOMs com um one-liner (sed em unix, Get-Content em PowerShell) antes de colar aqui.

Vírgula vs ponto e vírgula por localização

Uma exportação Excel de localização francesa usa pontos e vírgulas porque vírgulas são separadores decimais. Importá-lo com o delimitador vírgula padrão divide 1,234 em dois campos. Sempre escolha o delimitador que corresponde à fonte. Se você não tem certeza, olhe a primeira linha em um editor de texto puro; o separador óbvio é o que você quer.

Zeros à esquerda perdidos na coerção de tipo

Códigos postais, números de telefone e SKUs de produtos frequentemente começam com um zero (ex.: '01234'). Detecção automática de tipos coage esses para inteiros, perdendo o zero à esquerda (1234). Para colunas onde zeros à esquerda importam, desmarque Detecção automática de tipos para que os valores permaneçam strings. Ou converta e depois envolva manualmente com aspas os campos afetados.

Injeção de fórmula Excel (bomba CSV)

Se uma célula CSV começa com =, +, -, ou @, o Excel pode avaliá-la como uma fórmula quando o arquivo é aberto. =cmd|'/c calc'!A1 lança a calculadora em máquinas Windows. Este é um vetor de ataque conhecido quando aplicações web exportam dados controlados pelo usuário para CSV. A conversão para JSON neutraliza a ameaça (JSON não tem avaliação de fórmula), mas o CSV original permanece perigoso.

Privacidade e tratamento de dados

Toda análise acontece em seu navegador usando uma pequena função JavaScript. Não enviamos seu CSV ou JSON para um servidor, não registramos entradas, e não armazenamos saídas. Os botões Copiar e Baixar interagem com seu sistema operacional através de APIs padrão de gesto do usuário e são invisíveis para terceiros.

Uma vez carregada a página, a ferramenta roda offline. Você pode desconectar da rede e converter listas de clientes, SKUs internos, ou quaisquer dados que não devem sair do seu dispositivo. A ferramenta é segura para fluxos de trabalho adjacentes a HIPAA porque o caminho dos dados nunca atravessa uma fronteira externa.

Quando não usar este conversor

Arquivos muito grandes (acima de 10 MB)

O conversor mantém toda a entrada na memória e a processa sincronamente, o que congela a aba do navegador em CSVs de múltiplos milhões de linhas. Para arquivos acima de 10 megabytes, use um parser streaming (módulo csv do Python, csv-parse do Node, crate csv do Rust) que lê uma linha de cada vez.

Forma de objeto aninhado em células

CSV é plano por design. Se seus dados têm objetos ou arrays aninhados dentro de células (ex.: uma coluna de tags com valores separados por vírgula), a conversão os trata como strings, não arrays. Você precisará de uma etapa de pós-processamento em JavaScript ou Python para dividir a string e reconstruir a forma aninhada.

Dados binários ou não UTF-8

Arquivos CSV de sistemas Windows mais antigos podem ser codificados como Windows-1252 (CP-1252) em vez de UTF-8. Caracteres especiais (é, ñ, ü) aparecem como mojibake quando colados em uma área de texto UTF-8. Salve novamente o arquivo como UTF-8 em seu editor de texto (ou execute iconv na linha de comando) antes de colar.

Dados de streaming em tempo real

Se seu CSV está sendo anexado continuamente (um feed de log estilo tail), esta ferramenta em lote não consegue acompanhar. Use um parser streaming canalizado para um websocket ou um banco de dados com um modo de ingestão CSV (Postgres COPY FROM, MySQL LOAD DATA INFILE).

Mais perguntas

O parser está em conformidade estrita com RFC 4180?

Principalmente. O parser lida com escape de aspas duplas (duas aspas dentro de um campo citado significa uma aspa literal), campos citados com vírgulas e newlines embutidos, e terminadores de linha CRLF ou LF. Ele se desvia do RFC 4180 estrito ao aceitar campos não citados com espaço em branco no início ou no fim (que a especificação não permite). Esta tolerância pragmática combina com o que a maioria dos exportadores CSV do mundo real emite.

Como o CSV peculiar do Excel afeta a saída?

Excel adiciona BOMs a arquivos UTF-8, às vezes usa codificação Windows-1252, e prefere pontos e vírgulas em localizações não inglesas. Remova o BOM e salve novamente como UTF-8 antes de colar. Escolha o delimitador certo do dropdown. Cuidado com zeros à esquerda em colunas tipo-número; o Excel frequentemente os descarta sozinho quando você abre o CSV.

E quanto a UTF-8 com BOM versus UTF-8 puro?

UTF-8 com BOM tem um prefixo de três bytes (EF BB BF) que sinaliza codificação. A maioria das ferramentas web (navegadores, parsers JSON) prefere UTF-8 puro sem BOM. Se seu CSV veio da exportação UTF-8 do Excel, o BOM pode estar presente, e o primeiro campo de cabeçalho silenciosamente o conterá. Remova o BOM (sed -i '1s/^\xEF\xBB\xBF//' arquivo.csv) antes de colar.

Posso embutir JSON dentro de uma célula CSV?

Você pode, envolvendo o JSON em aspas duplas e escapando as aspas internas. O conversor trata a célula como uma string, então o JSON dentro permanece como string na saída. Uma etapa de pós-processamento (JSON.parse nesse campo no seu código) reconstrói o objeto embutido. Este é um padrão comum ao enviar JSON dentro de exportações de planilha.

Por que meu JSON de saída está faltando algumas colunas?

Provavelmente uma linha tem menos colunas que o cabeçalho (uma célula vazia no final foi descartada na exportação). O parser emite undefined para valores faltantes, que JSON.stringify descarta, então o objeto resultante tem menos chaves do que o esperado. Abra o arquivo fonte em uma planilha para ver quais linhas são curtas, e corrija os dados ou pós-processe para preencher valores padrão.

Isso suporta TSV (valores separados por tab)?

Sim, escolha Tab do dropdown de delimitador. Arquivos TSV são comuns quando arquivos CSV teriam muitas células citadas (porque tabs raramente são dados válidos em células de planilha). O parser lida com TSV identicamente exceto pelo delimitador; regras de citação e escape são as mesmas.

Ferramentas relacionadas