Ir para o conteúdo principal

CSV to JSON

Transforme linhas CSV em uma lista JSON de objetos.

Entrada CSV

Lin 1, Col 1
CSV

Resultado

Seu resultado aparecerá aqui

Adicione CSV acima e escolha Converter.

Adicione CSV à esquerda e escolha Converter.

Aguardando entrada

2 espaços

Converta CSV em uma lista JSON de objetos, com o cabeçalho como chaves. Vírgula, ponto e vírgula ou tabulação são detectados, e os valores ficam como texto.

O que é o CSV to JSON?

O CSV to JSON é uma ferramenta online gratuita que converte texto CSV, no seu navegador, em uma lista JSON de objetos, um por linha, usando a primeira linha como nomes. Ele lê texto separado por vírgula, ponto e vírgula ou tabulação, segue as regras de aspas da RFC 4180 e mantém cada valor como texto simples, sem adivinhar tipos.

Ou ele converte todas as linhas, ou recusa e diz qual linha não se encaixa.

O que ela aceita

  • Texto CSV simples: uma linha de cabeçalho primeiro, depois uma linha por registro, com o mesmo número de campos em todas as linhas.
  • O separador é detectado a partir da linha de cabeçalho: vírgula, ponto e vírgula ou tabulação, o que aparecer mais vezes fora das aspas duplas (a vírgula, em caso de empate). O mesmo separador vale para todas as linhas.
  • Um campo pode estar entre aspas duplas. Entre aspas, um separador, uma quebra de linha e uma aspa dupla escrita como duas aspas duplas são todos texto comum. Uma aspa dupla no meio de um campo sem aspas, como em 5" pipe, é mantida como está.
  • As linhas podem terminar com um avanço de linha, com um retorno de carro seguido de um avanço de linha ou com um retorno de carro sozinho. Linhas em branco e a última quebra de linha são ignoradas, e uma marca de ordem de bytes no início também.
  • A primeira linha dá os nomes, na ordem das colunas. Todo valor é um texto JSON exatamente como aparece no CSV, então 007, 1.50 e true continuam texto, e uma célula vazia é um texto vazio. Um cabeçalho sem linhas abaixo dá uma lista vazia, [].
  • Um nome que se repete recebe _2, _3 e assim por diante, e um nome vazio vira column_ seguido da sua posição. Ambos geram um aviso, e os novos nomes nunca colidem com um nome que já existe.
  • O resultado é uma lista JSON, escrita com a indentação que você escolher, 2 ou 4 espaços.

Bom saber

  • Os tipos não são adivinhados. Números, true, false e células vazias continuam texto, porque um CSV não diz qual é o tipo de uma coluna. Converta-os no programa que lê o JSON se você precisar de números de verdade.
  • A primeira linha é sempre o cabeçalho. Se o seu arquivo não tiver linha de cabeçalho, o primeiro registro vira os nomes.
  • Uma linha com mais ou menos campos que o cabeçalho é recusada, e o mesmo vale para um campo entre aspas que nunca fecha e para texto logo depois das aspas de fechamento. A mensagem informa a linha do problema. Nada é corrigido, completado nem cortado.
  • Só um separador é usado no arquivo inteiro. Se um arquivo mistura ponto e vírgula e vírgula entre os campos, vale o que for mais frequente na linha de cabeçalho, e as linhas que deixarem de se encaixar são recusadas.
  • Esta ferramenta lê texto CSV, não arquivos de planilha como .xlsx. Exporte a planilha como CSV antes.
  • Uma tabela grande pode dar um resultado maior que a entrada, porque cada valor ganha aspas e um nome. Se passar do limite de tamanho, é recusado com uma prévia incompleta (veja abaixo).

Como usar o CSV to JSON?

  1. Cole ou digite o seu CSV na caixa de entrada. A primeira linha deve conter os nomes das colunas. Nada é executado enquanto você digita.
  2. Escolha a indentação (“2 espaços” ou “4 espaços”) e aperte “Converter”.
  3. Leia o JSON ao lado da entrada. Se um nome de coluna se repete ou está vazio, um aviso na área do resultado diz como ele foi renomeado. Se a conversão for recusada, a mensagem explica o motivo e informa a linha.
  4. Aperte “Copiar” para colocar o JSON na área de transferência, ou “Baixar” para salvá-lo como converted.json.

Exemplos

Uma tabela com cabeçalho

Cole este CSV e aperte “Converter”. A primeira linha dá os nomes e cada uma das outras linhas vira um objeto. Todo valor é texto, até os números, e é por isso que “1” é escrito entre aspas.

id,name,city
1,Ada Lovelace,London
2,Grace Hopper,New York
[
  {
    "id": "1",
    "name": "Ada Lovelace",
    "city": "London"
  },
  {
    "id": "2",
    "name": "Grace Hopper",
    "city": "New York"
  }
]

Uma linha com campos faltando

A última linha tem um campo, mas o cabeçalho tem dois, então a ferramenta recusa em vez de adivinhar qual valor está faltando. A mensagem informa a linha, que aqui é a linha 3.

id,name
1,Ada
2

Esta linha tem um número de campos diferente do da linha de cabeçalho. Todas as linhas precisam ter o mesmo número de campos. Procure um delimitador faltando ou sobrando, ou um campo que contém delimitador ou quebra de linha e não está entre aspas duplas.

Linha 3, coluna 1

Ponto e vírgula e aspas

Programas de planilha configurados em português ou espanhol costumam salvar o CSV com ponto e vírgula, e a ferramenta detecta o separador sozinha. A vírgula dentro de “Café, moído” faz parte do valor porque o valor está entre aspas duplas. “001” mantém os zeros à esquerda e “12,50” continua sendo texto.

código;descrição;preço
001;"Café, moído";12,50
002;Pão;7,90
[
  {
    "código": "001",
    "descrição": "Café, moído",
    "preço": "12,50"
  },
  {
    "código": "002",
    "descrição": "Pão",
    "preço": "7,90"
  }
]

Um nome de coluna repetido

Duas colunas têm o mesmo nome, “name”. Os nomes JSON precisam ser únicos, então a segunda é renomeada para name_2 e um aviso informa isso. Um nome de coluna vazio vira column_ seguido da sua posição, como column_1, e também gera um aviso.

name,name
Ada,Lovelace
[
  {
    "name": "Ada",
    "name_2": "Lovelace"
  }
]

Um nome de coluna na linha de cabeçalho repete um anterior. Ele foi renomeado com _2, _3 e assim por diante, para que toda chave JSON continue única.

Limites e privacidade

Limites de tamanho

  • Entrada: até 2.000.000 bytes de texto em UTF-8 (cerca de 2 MB). Letras acentuadas e emojis ocupam mais de um byte cada. Uma entrada maior é recusada.
  • Resultado: também até 2.000.000 bytes. Se o resultado completo fosse maior, a ferramenta mostra apenas uma prévia incompleta dos primeiros 100.000 bytes, e essa prévia não pode ser copiada nem baixada.
  • Tempo: uma execução que demora mais que o seu limite de tempo é interrompida. Tente uma entrada menor.

Meu texto é enviado para um servidor?

Não. O texto que você digita ou cola, ou abre de um arquivo local, é processado localmente no seu navegador, em um Web Worker dedicado. Ele nunca é enviado para o servidor (um arquivo que você abre é lido apenas no seu navegador) e não é gravado em armazenamento, cookies nem na barra de endereços.

“Copiar” coloca o resultado na área de transferência e “Baixar” o salva como arquivo, mas só quando você aperta o botão. O arquivo é criado no seu navegador, então nada é enviado.

Para ver os detalhes completos, consulte a Política de Privacidade

Ferramentas e páginas relacionadas

O seu texto continua na página quando você troca de ferramenta na mesma aba, então dá para testar o mesmo texto em outra. Recarregar ou fechar a aba o encerra.

Todas as ferramentas