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?
- Cole ou digite o seu CSV na caixa de entrada. A primeira linha deve conter os nomes das colunas. Nada é executado enquanto você digita.
- Escolha a indentação (“2 espaços” ou “4 espaços”) e aperte “Converter”.
- 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.
- 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
2Esta 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.