tooly

Converter CSV para JSON online

Cole uma exportação CSV e obtenha um array de objetos JSON pronto para uma API, um script ou um arquivo de configuração — delimitador detectado automaticamente, sem upload.

Tudo roda no seu navegador — nada é enviado

Como usar

  1. 1

    Cole seu CSV — a primeira linha precisa ser o cabeçalho.

  2. 2

    Mantenha “detectar números e booleanos” ativado, a menos que todo valor deva continuar como texto.

  3. 3

    Copie o JSON ou baixe como arquivo.

Por que transformar uma planilha em JSON

CSV é o que planilhas, CRMs, bancos e painéis de análise exportam. JSON é o que APIs web, código JavaScript, bancos NoSQL e a maioria dos sistemas de configuração consomem. A conversão aparece o tempo todo: popular um banco de testes a partir de uma planilha que um colega mantém, transformar uma lista de produtos em fixtures para um protótipo de front-end, alimentar um script de build com uma lista de redirecionamentos ou traduções, ou enviar um lote de registros para uma API que só aceita JSON.

A saída aqui é um array JSON com um objeto por linha de dados. A linha de cabeçalho fornece os nomes das propriedades, então uma planilha com as colunas sku, title e price vira objetos com exatamente essas três chaves, prontos para percorrer num loop.

Como o parser lê o seu CSV

CSV parece trivial até um valor conter o separador. O parser segue as regras da RFC 4180, o mais perto que o CSV tem de um padrão:

  • Um campo entre aspas duplas pode conter o delimitador, quebras de linha e aspas. "Smith, John" continua sendo um único valor.
  • Uma aspa dentro de um campo entre aspas é escrita duas vezes: "6"" pipe" vira 6" pipe.
  • As linhas podem terminar com CRLF, no estilo Windows, ou LF, no estilo Unix; as duas são tratadas.
  • Uma marca de ordem de bytes (BOM) no início, que o Excel acrescenta ao salvar como CSV UTF-8, é removida para não ficar grudada no nome da primeira coluna.
  • Linhas completamente vazias são ignoradas.

O delimitador é escolhido contando vírgulas, pontos e vírgulas, tabs e pipes na primeira linha e pegando o mais frequente. Isso funciona em quase toda exportação, mas depende de o cabeçalho ser representativo. Se o cabeçalho tiver uma única coluna, sem separadores, assume-se a vírgula.

Espaços em volta dos nomes do cabeçalho são removidos, então price vira a chave price. Os valores nas linhas de dados são mantidos exatamente como foram escritos, inclusive com espaços no início ou no fim.

Valores tipados versus strings

Com "Detectar números e booleanos" ativado, cada célula é verificada contra uma pequena lista de regras:

  • Inteiros e decimais simples como 42, -7 e 19.99 viram números JSON, desde que tenham no máximo 15 dígitos.
  • Exatamente true e false, em minúsculas, viram booleanos. TRUE, Yes ou 1 ficam como estão.
  • Uma célula vazia vira null.
  • Todo o resto, incluindo sequências de dígitos mais longas, 1.5e3, +5, .5, 1,234 e datas, continua como string.

Isso é prático para a maioria dos dados, mas números em JSON não carregam formatação, então alguns valores mudam de sentido ao serem tipados:

  • Zeros à esquerda desaparecem. Um CEP como 02134 vira 2134, e um código de artigo 007 vira 7.
  • Sequências longas de dígitos perderiam precisão. Números em JavaScript só são exatos até uns 15 dígitos significativos, então valores com mais dígitos, como um ID de pedido de 20 dígitos ou um número de cartão, são mantidos como strings em vez de serem arredondados.
  • Números de telefone sem sinal de mais ou espaços também viram números.

Se alguma coluna guarda identificadores e não quantidades, desative a opção e converta no seu próprio código os poucos campos realmente numéricos. Com a opção desativada, células vazias viram strings vazias em vez de null.

Quando a saída parece errada

  • Tudo cai numa única chave. O delimitador não foi detectado, normalmente porque o cabeçalho tem um separador diferente dos dados, ou nenhum separador. Confira a primeira linha.
  • Os valores estão deslocados em uma coluna. Um campo contém o delimitador, mas não está entre aspas. Exporte de novo do aplicativo de origem em vez de editar à mão; as planilhas colocam esses campos entre aspas automaticamente.
  • Colunas extras somem. As chaves vêm só do cabeçalho, então células além da última coluna do cabeçalho são descartadas. Linhas com menos células recebem null ou uma string vazia nas que faltam.
  • Duas colunas, uma chave. Se o cabeçalho repete um nome, a coluna posterior sobrescreve a anterior em todos os objetos. Renomeie uma delas antes.
  • Caracteres estranhos como é. O arquivo foi salvo numa codificação antiga. Salve de novo como CSV UTF-8 e cole outra vez.

Trabalhando com o resultado

O JSON é exibido com recuo de 2 espaços, o que é bom para leitura e para fazer commit num repositório. Para minificá-lo para uma requisição de API ou mudar o recuo, passe-o pelo formatador de JSON. Para fazer o caminho inverso depois de editar, o JSON para CSV reconstrói uma planilha a partir do array. A conversão roda inteiramente na página, o que importa quando a exportação contém nomes de clientes, e-mails ou salários.

Perguntas frequentes

Quais delimitadores são suportados?

Vírgula, ponto e vírgula, tab e pipe são detectados automaticamente a partir da primeira linha.

Campos entre aspas são tratados corretamente?

Sim — aspas, vírgulas embutidas, quebras de linha dentro de aspas e aspas duplicadas seguem a RFC 4180.

O que faz “detectar números e booleanos”?

“42” vira 42, “true” vira true e células vazias viram null. Sequências de dígitos com mais de 15 dígitos continuam como texto para manter o valor exato. Desative para manter tudo como texto, por exemplo em CEPs com zeros à esquerda.

Meus dados são enviados a um servidor?

Não. A análise acontece no seu navegador.

Posso converter arquivos do Excel?

Salve a planilha como CSV primeiro (Arquivo → Salvar como → CSV UTF-8) e depois cole aqui.

Ferramentas relacionadas