Skip to content

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.

Sem rastreamento Roda no navegador Grátis
Preset
Opções · , · auto · LF · header · no BOM · flatten
Delimitador
1ª linha é cabeçalho
Inferir tipos (números, booleanos, null)
0 caracteres 0 linhas
Saída JSON
0 linhas · 0 colunas
Revisado para conformidade com RFC 4180, correção da Inferência de Tipos, preservação de precisão de inteiros grandes e comportamento de autonomes sem cabeçalho — Go Tools Engineering Team · May 9, 2026

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. 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. 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. 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.

✗ Incorreto
name,role
Smith, Jr.,admin
// Parser reads 3 columns: "Smith", " Jr.", "admin"
✓ Correto
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.

✗ Incorreto
// 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" }
✓ Correto
// 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.

✗ Incorreto
// Without big-int detection
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost)
✓ Correto
// 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]))).

✗ Incorreto
id, name, email
1, Alice, alice@example.com
// Output keys: "id", " name", " email" (with leading spaces)
✓ Correto
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.

✗ Incorreto
name,role,note
Alice,admin
Bob,editor,first day
// Row 1 is short by one cell
✓ Correto
// 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.

✗ Incorreto
// 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
✓ Correto
// 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?
Ela converte CSV para JSON diretamente no seu navegador, com suporte bidirecional: clique em Inverter direção para converter JSON de volta para CSV no mesmo painel. Cole o CSV na área de entrada e a ferramenta produz a saída JSON instantaneamente — sem upload, sem cadastro, nada sai do seu dispositivo. O parser está em conformidade com o RFC 4180, lida com chips de delimitador para vírgula, ponto e vírgula (Excel-EU), tab (TSV) e pipe, e a opção Inferir tipos converte strings numéricas em números, true/false em booleanos e células vazias em null. A ferramenta também lida com IDs inteiros grandes que de outra forma perderiam precisão por meio de JSON.parse, vírgulas embutidas dentro de campos entre aspas, aspas duplas escapadas (duplicadas) e dados sem cabeçalho com colunas autonomeadas (col1, col2, col3).
Meus dados são enviados a algum servidor?
Não. Toda a conversão é executada 100% no lado do cliente, no seu navegador, usando JavaScript. Seus dados CSV nunca são transmitidos, nunca são armazenados em nenhum servidor, nunca são registrados e nunca são analisados. Isso torna a ferramenta segura para exportações de planilhas contendo PII, dumps internos de CSV de banco de dados, registros de clientes e quaisquer dados sensíveis. Você pode verificar isso na guia de Rede do seu navegador — colar CSV dispara zero requisições de rede. A ferramenta não usa cookies para dados de entrada nem análises de terceiros que capturem o que você cola.
Como funciona a Inferência de Tipos?
Com Inferir tipos ativado, cada célula analisada passa por um pequeno pipeline de detecção antes de ser colocada no JSON: strings numéricas (1, 42, -3.14) viram números, true/false viram booleanos, strings vazias e o literal null viram JSON null, e todo o resto permanece como string. Há duas proteções importantes. Primeiro, strings com zero à esquerda como 007 ou 0123 são mantidas como strings mesmo parecendo numéricas — zeros à esquerda indicam que o valor é um identificador (CEPs, códigos de telefone, IDs sequenciais) e converter para número removeria silenciosamente os zeros. Segundo, inteiros acima de 2^53 - 1 (9007199254740991) também são mantidos como strings para evitar perda de precisão IEEE 754. Strings de data ISO (2026-05-09T10:00:00Z) são intencionalmente deixadas como strings — o JSON não tem tipo de data nativo, então convertê-las produziria um objeto Date do JavaScript que não sobrevive à serialização.
Por que inteiros grandes são mantidos como strings?
O tipo Number do JavaScript usa precisão dupla IEEE 754 e só pode representar inteiros exatamente até 2^53 - 1 (9007199254740991). Identificadores do mundo real — IDs snowflake do Twitter, IDs do Discord, campos Long do MongoDB, resourceVersion do K8s — são inteiros de 64 bits que excedem esse intervalo seguro. Se o parser chamasse Number() neles, o resultado seria silenciosamente arredondado (9007199254740993 vira 9007199254740992). O pipeline de Inferir tipos detecta valores acima do limite de inteiro seguro e os mantém como strings, para que os dígitos sobrevivam intactos. Um banner de aviso aparece abaixo da saída listando os campos afetados. Para converter de volta com precisão no código, use BigInt("9007199254740993") no valor da string JSON.
Meu CSV usa ponto e vírgula — como faço para analisá-lo?
Os locales europeus do Excel (Alemanha, França, Espanha, Itália, etc.) emitem CSVs delimitados por ponto e vírgula porque a vírgula é reservada para o separador decimal. Clique no chip `;` na linha Delimitador (ou abra o painel completo de Opções e escolha `;`) e o parser muda imediatamente para o modo ponto e vírgula. Valores numéricos com decimais por vírgula (1234,56) dentro desses arquivos são mantidos como strings pela Inferência de Tipos porque a notação decimal europeia é específica de locale — converta-os no código se você precisar de valores numéricos. O parser ainda aplica as regras de aspas do RFC 4180 com o novo delimitador, então campos entre aspas contendo ponto e vírgula são tratados corretamente.
Ele lida com TSV (delimitado por tab)?
Sim. Clique no chip Tab na linha Delimitador e o parser quebra em caracteres de tabulação em vez de vírgulas. TSV é o formato mais limpo para compartilhamento de CSV entre locales porque é improvável que o tab apareça dentro de campos de texto, eliminando a maioria dos casos extremos de aspas. É a saída padrão de ferramentas Unix (cut, awk), data warehouses (BigQuery, Snowflake) e bem suportada pelo Excel em qualquer locale. Cole o conteúdo do seu arquivo .tsv ou .tab diretamente — o resto do parser (autonomes de cabeçalho, inferência de tipos, detecção de inteiros grandes) funciona de forma idêntica.
E se meu CSV não tiver linha de cabeçalho?
Desative o Cabeçalho no painel de Opções. O parser tratará a primeira linha como dados em vez de nomes de coluna e gerará automaticamente as chaves: col1, col2, col3, … uma por coluna. O JSON de saída é um array de objetos com essas chaves sintéticas. Isso é útil para exportações brutas de bancos de dados que omitem o cabeçalho, arquivos planos de formato fixo e CSVs gerados por máquina. Se você quiser nomes de chave diferentes, converta primeiro com os autonomes e depois renomeie as chaves no seu pipeline a jusante (jq, JavaScript map, etc.). A ferramenta não infere chaves a partir de heurísticas dos dados — Cabeçalho desativado sempre produz col1, col2, col3.
Ele consegue lidar com campos entre aspas com vírgulas embutidas?
Sim. O parser é uma máquina de estados RFC 4180 adequada: quando encontra uma aspa dupla de abertura, muda para o estado QuotedField e trata tudo até a próxima aspa dupla não escapada como um único campo, incluindo delimitadores e quebras de linha embutidas (CR/LF). Aspas duplas escapadas (duplicadas, como "") são corretamente reduzidas a uma única aspa. Isso significa que `"Smith, Jr."` é analisado como um campo contendo `Smith, Jr.`, e `"He said ""hi"""` é analisado como `He said "hi"`. Parsers ingênuos do tipo split-por-vírgula quebram em dados do mundo real assim; esta ferramenta não.
Por que minhas datas estão sendo mantidas como strings?
Por design. O JSON não tem tipo de data nativo — apenas strings, números, booleanos, null, arrays e objetos. Strings de data ISO 8601 (2026-05-09T10:00:00Z) são mantidas literalmente como strings na saída JSON, que é a representação correta e sem perdas. Se o parser as convertesse em objetos Date do JavaScript, serializar o JSON resultante produziria saída diferente (um objeto sem representação útil de round-trip, ou um timestamp numérico). Mantenha as datas como strings no JSON e analise-as no ponto de uso com new Date(value) ou sua biblioteca de datas preferida. Isso corresponde ao comportamento de todo grande pipeline JSON-a-partir-de-CSV: Pandas, jq e os módulos csv + json do Python.
O que acontece se as linhas tiverem comprimentos diferentes?
Linhas com formato misto (algumas com mais ou menos colunas que o cabeçalho) são preenchidas para corresponder ao comprimento do cabeçalho. Células extras além da contagem do cabeçalho são descartadas, e células ausentes são definidas como string vazia (ou null quando Inferir tipos está ativado e o parser vê um valor vazio). Um aviso de notas de Schema aparece abaixo da saída para que você saiba que as linhas foram normalizadas. Geralmente está tudo bem para ferramentas a jusante que unem chaves, mas verifique a saída se o seu consumidor esperar consistência estrita de formato de linha. A causa mais comum são vírgulas finais em algumas linhas ou campos entre aspas com quebras de linha embutidas que são contados errado por exportadores a montante.
Que tamanho de arquivo posso colar?
Acima de 100.000 caracteres ou 2.000 linhas, a conversão ao vivo muda automaticamente para o modo manual: um botão Converter aparece em um banner informativo e a conversão só é executada quando você clica nele. Isso evita que a thread principal do navegador bloqueie a cada tecla pressionada durante uma análise pesada. Para saídas acima de 5 MB ou 50.000 linhas, a ferramenta trunca a pré-visualização do JSON na tela para as primeiras 500 linhas e mostra um banner Mostrando as primeiras 500 de N linhas — mas o botão Baixar ainda produz o arquivo completo com todas as linhas incluídas. O limite máximo absoluto é 10 MB de entrada; acima disso, a ferramenta mostra um erro e pede que você reduza a entrada.
Posso fazer round-trip JSON → CSV → JSON?
Sim, quando o JSON é plano (sem objetos ou arrays aninhados). Para dados aninhados, a direção inversa (JSON → CSV) precisa do modo Stringify para manter arrays e objetos como JSON dentro de uma única célula — o que então faz round-trip sem perdas por este conversor CSV → JSON quando Inferir tipos está ativado. Clique em Inverter direção no topo do painel para alternar para o modo JSON-para-CSV e verificar o round-trip. O modo Achatar na direção inversa é unidirecional: ele emite chaves pontuadas (customer.address.city) que não podem ser perfeitamente reconstruídas a partir do CSV. Veja nosso Conversor JSON para CSV para a direção inversa com suporte completo a Stringify.

Ferramentas relacionadas

Ver todas as ferramentas →