100 % local — seus dados nunca saem do seu navegador

CSV para JSON — números chegam como números

Transforme uma tabela CSV num array de objetos JSON com as chaves do cabeçalho. Números e booleanos saem tipados, prontos para somar ou comparar.

Instantâneo Privado Zero cookies
Indentação
Delimitador

Entrada CSV

Saída JSON

O que esta ferramenta faz

A linha de cabeçalho vira as chaves, e cada linha seguinte um objeto do array. Os valores são tipados em vez de citados às cegas: 30 sai como o número 30, true como booleano.

O delimitador é detectado na leitura, então um export europeu separado por ponto e vírgula funciona sem ajuste nenhum.

O que a detecção de tipos mexe e o que ela deixa

Estas são as regras que importam, porque é aí que os conversores costumam destruir dados:

  • um zero à esquerda mantém o valor como string — 01 continua "01";
  • notação hexadecimal e exponencial continuam strings: 0x10 e 1e5 não são números aqui;
  • um sinal de mais explícito mantém o texto, +7 continua string, enquanto -3 vira número;
  • true e false viram booleanos, diferenciando maiúsculas — TRUE continua string;
  • um campo vazio vira string vazia, nunca null;
  • o texto null continua a string "null", porque CSV não tem como expressar ausência.

E mais uma, fácil de escapar: o espaço junto ao delimitador faz parte do campo. Em 1, 2 o segundo valor é " 2" — uma string, com o espaço — e não o número 2.

Quando uma linha não bate com o cabeçalho

É um erro, e de propósito. Tanto Too many fields quanto Too few fields informam quantos campos eram esperados e quantos foram lidos, o suficiente para localizar a linha. Preencher ou cortar em silêncio deslocaria todas as colunas seguintes e devolveria um arquivo de aparência correta.

Linhas realmente vazias são puladas. Uma linha com todos os campos vazios é mantida: ela é uma linha de verdade.

Privado por padrão

Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.

Perguntas frequentes

Por que meu CEP 01234 continuou string?
Porque um zero à esquerda significa algo. Convertê-lo em número daria 1234 silenciosamente, então todo valor que começa com zero é mantido como texto: CEPs, códigos de produto e telefones saem intactos.
Por que uma linha desalinhada é erro e não aviso?
Porque ela é ambígua: a ferramenta não tem como saber se faltou um campo ou se entrou um delimitador a mais. A mensagem diz quantos campos eram esperados e quantos foram lidos, o bastante para achar a linha.
Como manter tudo como texto?
Desligue **Detectar tipos** acima do editor. Todos os valores saem então entre aspas, que é o que você quer quando o JSON vai direto para um sistema que faz a própria análise.

Conversores relacionados