Conversor CSV para JSON
Converta CSV para JSON no navegador. RFC 4180, inferência de tipos, cabeçalho, seguro para inteiros grandes. 100% privado, sem upload.
Opções · , · auto · LF · header · no BOM · flatten
O que é JSON e por que converter de CSV?
JSON (JavaScript Object Notation) é o formato universal para respostas de API, arquivos de configuração e troca de dados estruturados — toda linguagem de programação moderna, todo banco de dados e todo framework web tem suporte de primeira classe a JSON. CSV (Comma-Separated Values), por contraste, é o formato tabular mais antigo e mais amplamente suportado — todo aplicativo de planilha, toda exportação de banco de dados e toda ferramenta de analytics pode produzi-lo. Converter entre eles é uma das tarefas mais comuns na engenharia de dados: você recebe um CSV de uma planilha, um dump de banco de dados ou uma exportação de terceiros, e precisa de JSON para alimentar uma API, hidratar um frontend ou carregar em um armazenamento NoSQL. Esta ferramenta foi construída para esse caminho de conversão e lida com quatro cenários que a maioria dos conversores online estraga.
Esta ferramenta tem quatro diferenciadores importantes em comparação com conversores CSV-para-JSON online típicos:
**1. Parser de Máquina de Estados RFC 4180.** CSV parece simples, mas as regras de aspas são sutis: um campo envolto em aspas duplas pode conter vírgulas, quebras de linha embutidas e aspas duplas escapadas (duplicadas, como ""). Parsers ingênuos do tipo split-por-vírgula quebram em dados do mundo real — endereços com vírgulas, campos de texto multilinha e valores entre aspas que contêm aspas. Esta ferramenta implementa um parser de máquina de estados adequado, seguindo o RFC 4180 (a especificação da IETF para CSV), tratando corretamente campos entre aspas, delimitadores embutidos, quebras de linha embutidas e aspas escapadas em todas as direções. A saída é reversível em round-trip pelo módulo csv do Python, PostgreSQL COPY, AWS S3 SELECT e qualquer parser conforme.
**2. Inferência de Tipos com Segurança para Inteiros Grandes.** Com Inferir tipos ativado, strings numéricas viram números, true/false viram booleanos, células vazias viram null. Mas o pipeline de inferência tem duas proteções importantes: strings com zero à esquerda (007, 0123) são mantidas como strings porque zeros à esquerda indicam identificadores — converter para número os removeria silenciosamente. E inteiros acima de 2^53 - 1 (9007199254740991) também são mantidos como strings para evitar perda de precisão IEEE 754. IDs snowflake do Twitter, IDs do Discord, campos Long do MongoDB e resourceVersion do K8s permanecem todos exatos em vez de serem silenciosamente arredondados. Strings de data ISO são intencionalmente mantidas como strings — o JSON não tem tipo de data nativo.
**3. Autonomes de Cabeçalho ou Usar Primeira Linha.** Com Cabeçalho ativado (o padrão), a primeira linha é tratada como nomes de coluna e cada linha subsequente vira um objeto JSON indexado por esses nomes. Com Cabeçalho desativado, o parser nomeia automaticamente as colunas col1, col2, col3 — útil para dumps brutos de dados sem uma linha de cabeçalho. A linha de chips de Delimitador cobre os quatro separadores mais comuns: vírgula (padrão RFC 4180), ponto e vírgula (locales Excel-EU), tab (TSV de ferramentas Unix e data warehouses) e pipe (campos com muitas vírgulas). Escolha o chip e analise — sem necessidade de configuração manual para CSVs típicos do mundo real.
**4. 100% Privacidade Baseada no Navegador.** Seus dados CSV — que frequentemente contêm PII de usuários, exportações internas de banco de dados, registros de clientes e exportações de produção — nunca saem do seu navegador. Nenhum dado é enviado a nenhum servidor, sem registros, sem analytics que capturem a entrada. Você pode verificar isso na guia de Rede do seu navegador. Esta é a única forma segura de lidar com dados sensíveis em uma ferramenta online. Veja a direção inversa clicando em Inverter ou use nosso Conversor JSON para CSV complementar quando CSV for o destino. Precisa validar a saída JSON antes de consumi-la? Experimente nosso Formatador JSON.
Os pontos fortes do JSON são tipos precisos, aninhamento nativo e uma especificação estrita que é analisada de forma idêntica em todos os lugares — o formato certo sempre que uma máquina consome os dados. Os pontos fortes do CSV são universalidade e legibilidade humana — o formato certo sempre que um humano abre uma planilha. A ferramenta certa depende do consumidor: humano lendo uma planilha → CSV, máquina consumindo uma API → JSON. Este conversor faz a ponte em ambas as direções.
// Input CSV (comma + LF, header on, infer types on)
id,name,active,score
1,Alice,true,98.5
2,Bob,false,87
3,Carol,true,
// Output JSON
[
{ "id": 1, "name": "Alice", "active": true, "score": 98.5 },
{ "id": 2, "name": "Bob", "active": false, "score": 87 },
{ "id": 3, "name": "Carol", "active": true, "score": null }
]
// Same input with Header off (no first-row keys)
1,Alice,true,98.5
2,Bob,false,87
// Becomes
[
{ "col1": 1, "col2": "Alice", "col3": true, "col4": 98.5 },
{ "col1": 2, "col2": "Bob", "col3": false, "col4": 87 }
] Recursos Principais
Parser de Máquina de Estados RFC 4180
Parser estrito de máquina de estados seguindo a especificação IETF de CSV: tratamento correto de campos entre aspas, delimitadores embutidos, CR/LF embutidos e aspas duplas escapadas (duplicadas). A saída faz round-trip de forma limpa pelo csv do Python, PostgreSQL COPY e AWS S3 SELECT.
Inferência de Tipos com Segurança para Inteiros Grandes
Inferir tipos ativado converte strings numéricas em números, true/false em booleanos, células vazias em null. Inteiros acima de 2^53 - 1 permanecem como strings para evitar perda de precisão IEEE 754; strings com zero à esquerda (007, 0123) permanecem como strings para preservar a semântica de identificador.
Cabeçalho Ativado/Desativado com Autonomes
Cabeçalho ativado (padrão) usa a primeira linha como chaves JSON. Cabeçalho desativado nomeia automaticamente as colunas col1, col2, col3 em ordem — útil para dumps brutos de dados e CSVs gerados por máquina sem uma linha de cabeçalho. Os autonomes são determinísticos e amigáveis a pipelines.
Delimitadores Vírgula, Ponto e Vírgula, Tab, Pipe
Chips de Delimitador de um clique para os quatro separadores mais comuns: `,` (padrão RFC 4180), `;` (locales Excel-EU), `\t` (TSV de ferramentas Unix, BigQuery, Snowflake) e `|` (campos de texto livre com muitas vírgulas). O parser muda de modo imediatamente — sem necessidade de converter os arquivos primeiro.
Detecção de Inteiros Grandes
Inteiros acima de 2^53 são detectados durante a análise e preservados como strings no JSON — IDs snowflake do Twitter, IDs do Discord, campos Long do MongoDB e resourceVersion do K8s permanecem exatos em vez de serem silenciosamente arredondados pelo tipo number IEEE 754 do JavaScript.
Bidirecional com Inverter
Um botão Inverter direção alterna a conversão no lugar: a entrada vira JSON, a saída vira CSV, o texto atual é preservado. Faça o round-trip dos seus dados em ambas as direções para verificar a conversão sem perdas antes de enviá-los a um pipeline.
Exemplos
Exportação de Planilha com Cabeçalho
id,name,email,role 1,Alice,alice@example.com,admin 2,Bob,bob@example.com,editor 3,Carol,carol@example.com,viewer 4,Dan,dan@example.com,viewer
CSV padrão de uma planilha. Com Cabeçalho ativado e Inferir tipos ativado, você obtém um JSON tipado e limpo: inteiros permanecem inteiros, booleanos/null são detectados.
Exportação de Log Delimitado por Tab (TSV)
ts event user duration 2026-05-09T10:00:00Z signup alice 142 2026-05-09T10:01:00Z login alice 87 2026-05-09T10:02:00Z checkout alice 312 2026-05-09T10:03:00Z logout alice 44
Escolha `\t` (Tab) como delimitador. O Cabeçalho ativado padrão usa automaticamente a primeira linha como chaves.
CSV Excel-EU (delimitador ponto e vírgula, CRLF)
id;name;price 1;Alice;1234,56 2;Bob;9876,54 3;Carol;42,00
O Excel nos locales DE/FR/IT/ES emite separadores `;` porque a vírgula é a marca decimal. Escolha `;` no chip Delimitador — o parser cuida do resto.
Vírgulas Embutidas e Aspas Escapadas
name,role,note "Smith, Jr.",admin,"He said ""hi""" "Doe, Jane",editor,"Two lines"
Aspas padrão do RFC 4180: campos entre aspas podem conter delimitadores e aspas escapadas (duplicadas). O parser é uma máquina de estados — ele nunca quebra dentro de aspas.
CSV com IDs Inteiros Grandes
id,event,user 9007199254740993,signup,alice 9007199254740994,login,bob 9007199254740995,checkout,carol
Inteiros grandes excedem o intervalo seguro do JavaScript (2^53 - 1). Com Inferir tipos ativado, o parser detecta isso e mantém o valor como string para preservar a precisão — sem truncamento.
CSV sem Cabeçalho
1,Alice,admin 2,Bob,editor 3,Carol,viewer 4,Dan,viewer
Desative o Cabeçalho; as colunas recebem os nomes automáticos `col1`, `col2`, `col3`. Use isso para dumps brutos de dados sem uma linha de cabeçalho.
Como Usar
- 1
Cole seu CSV
Insira ou cole seu CSV no campo de entrada acima. A ferramenta aceita dados delimitados por vírgula, ponto e vírgula, tab e pipe. Você também pode clicar em «Carregar exemplo» para experimentar uma amostra como uma exportação de planilha, log TSV ou CSV Excel-EU com ponto e vírgula.
- 2
Escolha o delimitador (ou Tab)
Clique em `,` (padrão), `;` (Excel-EU ponto e vírgula), `\t` (TSV) ou `|` (Pipe) para alternar o delimitador em um clique. Abra o painel de Opções para controle fino: Cabeçalho ativado/desativado e Inferir tipos ativado/desativado. Cabeçalho desativado nomeia automaticamente as colunas col1, col2, col3.
- 3
Copie ou Baixe o JSON
Clique em Copiar para levar o JSON para a área de transferência, ou em Baixar para salvá-lo como arquivo .json pronto para o seu código, API ou pipeline. Para round-trips, clique em Inverter direção para converter JSON de volta para CSV no lugar.
Armadilhas Comuns de Conversão
Vírgula Embutida sem Aspas na Origem
Se o seu CSV foi construído à mão com um join(',') ingênuo, qualquer campo contendo uma vírgula (Smith, Jr. ou 1,234.56) quebra os limites das colunas — o parser vê colunas a mais onde deveria haver uma. A correção é envolver o campo problemático em aspas duplas conforme o RFC 4180. Esta ferramenta lida corretamente com campos entre aspas, mas o CSV de origem precisa usar aspas adequadas.
name,role Smith, Jr.,admin // Parser reads 3 columns: "Smith", " Jr.", "admin"
name,role "Smith, Jr.",admin // Parser reads 2 columns: "Smith, Jr.", "admin"
Ponto e Vírgula do Excel-EU Analisado como Vírgula
Os locales europeus do Excel (Alemanha, França, Espanha, Itália, etc.) emitem CSV delimitado por ponto e vírgula porque a vírgula é reservada para o separador decimal. Se você deixar o delimitador em `,` (padrão), cada linha colapsa em uma única coluna com ponto e vírgula embutidos. Escolha o chip Delimitador `;` — o parser muda para o modo ponto e vírgula e produz colunas corretas.
// Wrong delimiter (default comma) on Excel-EU file
id;name;price
1;Alice;1234,56
// Each row becomes one column: { col1: "1;Alice;1234,56" } // Correct: pick `;` Delimiter chip
id;name;price
1;Alice;1234,56
// Output: { id: 1, name: "Alice", price: "1234,56" } IDs Inteiros Grandes Perdem Precisão após JSON.parse
IDs snowflake do Twitter, IDs do Discord e outros inteiros de 64 bits excedem o intervalo seguro do JavaScript (2^53 - 1) e perdem precisão quando JSON.parse() os lê como números. Com Inferir tipos ativado, esta ferramenta detecta valores acima do limite seguro e os mantém como strings, preservando os dígitos exatos. Use BigInt("9007199254740993") no seu código para converter de volta para um tipo numérico.
// Without big-int detection
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost) // With Infer types on, big integers stay as strings
{"id": "9007199254740993"}
// Use BigInt(value) in code to preserve precision Linha de Cabeçalho Contém Espaços
Se o cabeçalho do seu CSV é `id, name, email` (com espaços após as vírgulas), as chaves JSON viram "id", " name", " email" — incluindo o espaço inicial. O parser preserva o cabeçalho exatamente como dado, conforme o RFC 4180. A correção é limpar o CSV de origem antes de colar, ou renomear as chaves a jusante (jq 'with_entries(.key |= ltrimstr(" "))' ou JavaScript Object.fromEntries(Object.entries(o).map(([k,v]) => [k.trim(), v]))).
id, name, email 1, Alice, alice@example.com // Output keys: "id", " name", " email" (with leading spaces)
id,name,email 1,Alice,alice@example.com // Output keys: "id", "name", "email" (clean)
Comprimento Inconsistente de Linhas
Quando linhas no CSV têm contagens diferentes de colunas (algumas com vírgulas finais, outras sem), o parser preenche células ausentes com strings vazias (ou null quando Inferir tipos está ativado) e descarta extras além do comprimento do cabeçalho. Um aviso de notas de Schema aparece para que você saiba que as linhas foram normalizadas. Geralmente está tudo bem, mas verifique a saída se consumidores a jusante esperarem um formato estrito de linha.
name,role,note Alice,admin Bob,editor,first day // Row 1 is short by one cell
// Output (note empty/null cell in row 1)
[
{ "name": "Alice", "role": "admin", "note": null },
{ "name": "Bob", "role": "editor", "note": "first day" }
] Strings de Data Convertidas Inesperadamente
Strings de data ISO 8601 (2026-05-09T10:00:00Z) são intencionalmente mantidas como strings na saída JSON — o JSON não tem tipo de data nativo, então a conversão produziria um objeto Date do JavaScript que não sobrevive à serialização ou um epoch numérico que perde a informação de fuso horário. Isso é por design. Analise as datas no ponto de uso com new Date(value) ou sua biblioteca de datas preferida. Não desative Inferir tipos apenas para preservar datas — isso também manteria os números como strings.
// Expecting a Date object in the output ts,event 2026-05-09T10:00:00Z,signup // Output ts is the string "2026-05-09T10:00:00Z", NOT a Date
// Correct: parse at the point of use in your code const rows = JSON.parse(output); const when = new Date(rows[0].ts); // when is now a Date object
Casos de Uso Comuns
- Exportação de Planilha para Importação em API
- Cole um CSV exportado do Excel, Google Sheets ou Numbers e obtenha um array JSON de objetos pronto para POST em uma API REST, mutação GraphQL ou endpoint de importação em massa. O caso de uso mais comum — analistas produzem dados de planilha, engenheiros precisam de JSON tipado para alimentar o backend.
- Exportação do Excel para Ferramentas
- Converta exportações CSV do Excel (incluindo arquivos Excel-EU delimitados por ponto e vírgula com o chip `;`) em JSON para processamento com ferramentas JavaScript, scripts jq ou qualquer sistema que leia JSON. O parser lida corretamente com a remoção de BOM e quebras de linha CRLF, para que exportações do Excel não quebrem na primeira linha.
- Log TSV para Analytics
- Logs separados por tab de exportações do BigQuery, descargas do Snowflake, pipelines do Vector ou ferramentas Unix (cut, awk) frequentemente chegam como .tsv. Escolha o chip de Delimitador Tab e obtenha um array JSON tipado pronto para análise ad-hoc, ingestão em dashboard ou transformação em estágio de pipeline.
- Dump CSV de Banco de Dados para ETL
- Converta a saída de PostgreSQL COPY TO CSV, MySQL SELECT INTO OUTFILE ou qualquer dump CSV de banco de dados em JSON para carregar em um armazenamento NoSQL, alimentar um pipeline ETL JavaScript ou enviar para o BigQuery como JSON delimitado por linha. A detecção de inteiros grandes preserva IDs numéricos que excedem o intervalo seguro do JavaScript.
- Consumo de Resultado de Testes CSV do Postman/Newman
- Execuções de testes do Postman exportam relatórios CSV de aprovação/falha por requisição. Converta para JSON para consumo programático — alimente um dashboard de status, pipeline de alertas ou agregador de resultados de testes. Linhas com formato misto (testes que falharam têm uma coluna error extra) são tratadas com preenchimentos vazios/null.
- CSV Pequeno para Configuração JSON Rápida
- Tem um CSV pequeno de constantes — códigos de moeda, nomes de países, SKUs de produtos — e precisa de um array JSON para um arquivo de configuração ou uma constante JavaScript? Cole, copie, cole. Com Inferir tipos ativado, números e booleanos são tipados corretamente; com Cabeçalho ativado, você obtém um array de objetos com campos nomeados pronto para colocar em um arquivo .json.
Detalhes Técnicos
- Internos do Parser de Máquina de Estados RFC 4180
- O parser é uma implementação adequada de máquina de estados finita seguindo o RFC 4180. Os estados incluem UnquotedField, QuotedField, AfterQuote, RowEnd e EndOfInput. O parser trata corretamente campos entre aspas contendo o delimitador, CR/LF embutidos dentro de campos entre aspas, aspas duplas escapadas (duplicadas, como "") e quebras de linha finais. Isso produz uma saída que faz round-trip sem perdas pelo módulo csv do Python, PostgreSQL COPY, AWS S3 SELECT e qualquer parser conforme. A máquina de estados é ciente do delimitador, então alternar de `,` para `;` ou `\t` não muda a semântica de aspas — apenas o separador de campo.
- Algoritmo de Inferência de Tipos
- Com Inferir tipos ativado, cada célula passa por um pipeline de detecção ordenado. Primeiro, uma célula vazia vira JSON null. Segundo, as strings literais true e false viram booleanos JSON. Terceiro, strings com zero à esquerda (^0[0-9]+$) são mantidas como strings para preservar a semântica de identificador — converter para números removeria silenciosamente os zeros à esquerda. Quarto, literais inteiros são testados contra o limite de inteiros seguros (-2^53+1 a 2^53-1); valores fora desse intervalo são mantidos como strings para evitar perda de precisão IEEE 754. Quinto, strings de data ISO 8601 são detectadas por regex e intencionalmente mantidas como strings — o JSON não tem tipo de data nativo. Qualquer coisa que sobreviva às cinco proteções é convertida via Number() (numérico) ou mantida como string (todo o resto).
- Remoção de BOM e Tratamento de Codificação
- Toda a entrada é tratada como UTF-8. O BOM UTF-8 opcional (0xEF 0xBB 0xBF) é silenciosamente removido da primeira célula da primeira linha quando presente — isso evita que os bytes do BOM sejam incluídos como um caractere perdido no início do nome da primeira coluna (o Excel no Windows comumente emite o BOM, quebrando parsers ingênuos). Outras codificações (Windows-1252, ISO-8859-1) não são detectadas automaticamente; a API File do navegador já teria decodificado os bytes como UTF-8 quando o texto chegasse a esta ferramenta. Se você tem entrada não-UTF-8, converta-a primeiro com iconv ou a opção de exportação de codificação do seu editor antes de colar.
Melhores Práticas
- Escolha o Delimitador Explicitamente para Dados Sem Vírgula
- Não confie na detecção automática. Se o seu CSV usa ponto e vírgula (Excel-EU), tabs (TSV de BigQuery, Snowflake ou ferramentas Unix) ou pipes (campos com muitas vírgulas), clique no chip de Delimitador correspondente antes de colar. O parser é ciente do delimitador: alternar o chip re-analisa a entrada imediatamente. Isso evita o modo de falha mais comum de CSV-para-JSON, em que cada linha colapsa em uma única célula porque o parser usou o separador errado.
- Mantenha Inferir Tipos Ativado para JSON Tipado
- Com Inferir tipos ativado (o padrão), você obtém JSON tipado: números como números, booleanos como booleanos, null onde aparecem células vazias. É isso que a maioria dos consumidores quer — APIs, frontends, código JavaScript. Desative Inferir tipos somente quando precisar especificamente que cada célula seja string (consumidores estritos de tipos a jusante, pipelines de validação que comparam bytes exatos da origem). O pipeline de detecção tem proteções para strings com zero à esquerda, inteiros grandes e datas ISO, então identificadores e datas permanecem seguros mesmo com a inferência ativada.
- Aspas IDs como Strings no CSV a Montante
- Se o seu CSV é gerado por um banco de dados ou pipeline que você controla, emita IDs numéricos grandes (snowflakes do Twitter, IDs do Discord, resourceVersion do K8s) como strings CSV entre aspas ("9007199254740993") para que passem pela Inferência de Tipos de forma limpa. O parser os manterá como strings de qualquer maneira (a detecção de inteiros grandes captura valores acima de 2^53 - 1), mas o uso explícito de aspas é o contrato a montante mais robusto e evita qualquer ambiguidade sobre precisão.
- A Linha de Cabeçalho Deve Ser a Primeira Linha
- Cabeçalho ativado (o padrão) detecta automaticamente a primeira linha como nomes de coluna. Se o seu CSV tem comentários, linhas em branco ou metadados antes do cabeçalho, remova-os antes de colar — o parser não pula linhas iniciais sem dados. Para CSVs sem cabeçalho (exportações brutas, dumps gerados por máquina), desative o Cabeçalho e as colunas serão nomeadas automaticamente col1, col2, col3 em ordem. Não tente falsificar um cabeçalho prefixando-o em um arquivo sem cabeçalho; ou desative o Cabeçalho ou corrija a origem.
- Use o Modo Stringify para Round-Trips CSV → JSON → CSV
- Se você planeja fazer round-trip dos dados em ambas as direções (CSV → JSON → CSV), a direção inversa (JSON → CSV) precisa do modo Stringify para que arrays ou objetos aninhados sobrevivam sem perdas. O modo Achatar na direção inversa emite chaves pontuadas (customer.address.city) que não podem ser perfeitamente reconstruídas pelo parser de CSV. Veja nosso Conversor JSON para CSV para a referência completa da direção inversa e notas sobre testes de round-trip.
Perguntas Frequentes
O que esta ferramenta faz?
Meus dados são enviados a algum servidor?
Como funciona a Inferência de Tipos?
Por que inteiros grandes são mantidos como strings?
Meu CSV usa ponto e vírgula — como faço para analisá-lo?
Ele lida com TSV (delimitado por tab)?
E se meu CSV não tiver linha de cabeçalho?
Ele consegue lidar com campos entre aspas com vírgulas embutidas?
Por que minhas datas estão sendo mantidas como strings?
O que acontece se as linhas tiverem comprimentos diferentes?
Que tamanho de arquivo posso colar?
Posso fazer round-trip JSON → CSV → JSON?
Ferramentas relacionadas
Ver todas as ferramentas →Decodificador e Codificador Base64
Codificação e Formatação
Decodifique e codifique Base64 online gratuitamente. Conversão em tempo real com suporte completo a UTF-8 e emoji. 100% privado — executa no seu navegador. Sem necessidade de cadastro.
JSON Diff (Comparar)
Codificação e Formatação
Compare dois arquivos JSON instantaneamente no navegador. Destaque lado a lado, saída JSON Patch (RFC 6902), ignore campos ruidosos como timestamps e IDs. 100% privado, sem upload.
Formatador e Validador JSON
Codificação e Formatação
Formate, valide e embeleze JSON instantaneamente no seu navegador. Ferramenta online gratuita com validação de sintaxe, detecção de erros, minificação e cópia com um clique. 100% privado — seus dados nunca saem do seu dispositivo.
Validador JSON Schema
Codificação e Formatação
Valide JSON contra qualquer JSON Schema instantaneamente no navegador. Suporta Draft 2020-12, 2019-09 e Draft-07 com mensagens de erro com caminho preciso. 100% privado — sem upload, sem conta, gratuito.
Conversor JSON para CSV
Codificação e Formatação
Converta JSON para CSV no navegador. Presets RFC 4180, Excel-EU, TSV, Pipe. Achatar aninhados ou stringify. 100% privado, sem upload.
Conversor JSON para YAML
Codificação e Formatação
Cole JSON e obtenha YAML instantaneamente. Conversão ao vivo no navegador. K8s/Compose, indentação 2/4 espaços, Norway-safe. 100% privado, sem upload.