Converter CSV em JSON

Funciona no seu dispositivo · Seu arquivo nunca sai do seu dispositivo.

Solte uma exportação .csv ou cole o texto e receba uma lista JSON — um objeto por linha, com o cabeçalho como chaves. O leitor segue a RFC 4180, então campos entre aspas, aspas duplicadas e vírgulas ou quebras de linha dentro de uma célula sobrevivem intactos.

O separador de colunas é detectado automaticamente entre vírgula, ponto e vírgula, tabulação e barra vertical — exportações brasileiras com ponto e vírgula funcionam sem configurar nada — e você pode trocá-lo. Por padrão "12" vira o número 12, "true" vira booleano e uma célula vazia vira null — mas só onde nada muda: 1.50, 1e3, zeros à esquerda (007, comuns em CEP e códigos) e IDs longos continuam texto, porque como números seriam escritos de volta de outro jeito. Desligue a opção e cada valor continua exatamente o texto que era.

Nomes de cabeçalho repetidos ou vazios recebem nomes únicos (column_3), um BOM é retirado, um arquivo salvo em UTF-16 ou numa página de código antiga é lido como tal e identificado, linhas com mais células que o cabeçalho são apontadas com o número da linha, e um problema de leitura é reportado com linha e coluna, não com uma mensagem vaga. A prévia mostra as primeiras 200 linhas antes de você baixar.

Como Converter CSV em JSON

  1. Solte um arquivo CSV, ou cole o texto CSV na caixa.
  2. Deixe o separador em automático ou escolha um; decida se números e booleanos devem ser tipados.
  3. Clique em «Converter para JSON» e confira a prévia.
  4. Baixe o .json.

Formatos suportados e limites

Entrada
CSV / TSV (.csv, .tsv, .txt) — arquivo ou texto colado
Saída
Lista JSON de objetos, formatada, UTF-8
Leitura
RFC 4180: aspas, separadores e quebras de linha dentro das células
Separador
Detectado sozinho: vírgula, ponto e vírgula, tabulação, barra vertical
Onde roda
No seu navegador — sem enviar nada

Não serve para: Reconstruir estruturas aninhadas — um CSV é plano, então cada linha vira um objeto plano; colunas com ponto no nome não são reaninhadas.

O que exatamente a detecção de tipos muda

Com a opção ligada, uma célula vira número só quando esse número seria escrito de volta como o mesmo texto: 12, -4 e 3.5 viram números. 1.50, 1e3 e -0 continuam texto, porque como números voltariam como 1.5, 1000 e 0. O mesmo vale para 007, +5, " 12", 3,5, 1,250, um sinal de porcentagem ou de moeda, e um ID mais longo do que um número consegue guardar com exatidão.

true e false são reconhecidos com qualquer combinação de maiúsculas e minúsculas, então TRUE vira true. Uma célula vazia vira null, mas a palavra NULL continua texto, já que também pode ser um valor ou um nome. Datas como 2024-01-05 sempre continuam texto.

Linhas mais curtas ou mais longas que o cabeçalho

As células são associadas ao cabeçalho pela posição. Uma linha com menos células recebe null nas colunas que faltam (uma string vazia com a detecção desligada). Uma linha com mais células que o cabeçalho não tem onde pôr as que sobram, então elas ficam de fora, e uma mensagem acima da prévia diz em quantas linhas isso aconteceu e em que linha está a primeira. Isso costuma significar que um valor como Silva, João contém o separador sem aspas.

Linhas em branco são puladas. Os nomes do cabeçalho perdem os espaços em volta; os valores não, então " Recife" mantém o espaço.

Como as aspas são lidas, e para onde um erro aponta

Uma aspa só abre um campo entre aspas quando é o primeiro caractere do campo; no meio, como em tela de 5", ela continua fazendo parte do texto. Uma aspa que abre um campo e nunca é fechada puxaria o resto do arquivo para uma célula só, então a conversão para e informa a linha e a coluna em que essa aspa abriu.

Detecção do separador e a codificação do arquivo

A detecção olha os primeiros 64 KB, até 50 linhas, e escolhe o separador que dá o mesmo número de colunas no maior número de linhas; separadores dentro de aspas não contam. Num arquivo com ponto e vírgula e vírgula decimal, como A;1,5, o ponto e vírgula é encontrado e 1,5 continua texto.

O arquivo é lido conforme os seus bytes: uma marca de ordem de bytes (BOM), UTF-16 (que o Excel grava como «Texto Unicode») ou UTF-8. Quando os bytes não são UTF-8 válido, entra a página de código antiga que faz deles palavras: as páginas de código do Windows para texto da Europa Ocidental e Central, cirílico, grego, turco, hebraico, árabe (com persa e urdu) e tailandês, ou GB18030, Big5, Shift_JIS e EUC-KR para chinês, japonês e coreano. A linha do arquivo então avisa, por exemplo «lido como windows-1256, não UTF-8»; um arquivo muito curto tem poucas letras para julgar, então confira a prévia.

Perguntas frequentes

Meus arquivos são enviados para algum servidor?
Não. A conversão acontece inteiramente no seu navegador, com a capacidade do seu próprio aparelho. O arquivo não sai do seu computador nem do seu celular, e, depois que você usa a ferramenta uma vez, ela continua funcionando sem internet (as de vídeo, de reconhecimento de texto e de remoção de fundo baixam o motor deste site no primeiro uso).
Como números, booleanos e células vazias são tratados?
Com «Detectar números, booleanos e células vazias» ligado, 12 e 3.5 viram números, true/false viram booleanos e uma célula vazia vira null. Um valor só vira número quando seria escrito de volta exatamente igual, então 1.50, 1e3, zeros à esquerda (007) e IDs longos ficam como texto, e nada muda sem você perceber. Desligue a opção para manter tudo como texto.
Meu arquivo usa ponto e vírgula ou tabulação — preciso fazer algo?
Não. O separador é detectado pelas primeiras linhas do arquivo. Se o palpite estiver errado, escolha o separador na lista.
E se uma célula tiver vírgula ou quebra de linha?
É para isso que servem as aspas, e o leitor trata exatamente como o padrão manda: um campo entre aspas pode conter separadores, quebras de linha e aspas duplicadas.

Ferramentas relacionadas

Mais em Planilhas e dados

Esta página em outros idiomas: English · العربية · Deutsch · Français · Español · Русский · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা