O que este conversor faz
O CSV é o formato de exportação comum de planilhas e bancos de dados: um registro por linha, com os valores separados por vírgulas (ou, no Brasil, muitas vezes por ponto e vírgula). O JSON é o que a maioria das APIs, do código JavaScript e dos bancos de dados NoSQL espera. Esta ferramenta transforma um no outro.
Com uma linha de cabeçalho, cada linha do CSV vira um objeto JSON, e os nomes das colunas viram as chaves. Sem linha de cabeçalho, cada linha vira um array de valores. A leitura é feita pelo Papa Parse, uma biblioteca de CSV bem testada que lida com campos entre aspas, vírgulas dentro das aspas e quebras de linha dentro das células.
Como usar
- Escolha CSV para JSON (ou JSON para CSV, para o sentido contrário).
- Cole seus dados, clique em Abrir arquivo para carregar um arquivo
.csvou.tsv, ou clique em Exemplo. - Ajuste as opções. O JSON é atualizado enquanto você muda:
- Separador: Detectar, Vírgula, Ponto e vírgula, Tabulação ou Barra vertical.
- Resultado: 2 espaços, 4 espaços ou Minificado.
- A primeira linha é o cabeçalho: objetos com chaves nomeadas quando ligado, arrays quando desligado.
- Converter números e true/false: transforma
12em número etrueem booleano. Quando desligado, todos os valores continuam como strings. - Pular linhas vazias: ignora as linhas em branco, que as planilhas muitas vezes acrescentam no fim.
- Clique em Copiar ou Baixar para salvar o resultado como um arquivo
.json.
A linha de status mostra quantas linhas e colunas foram lidas e qual separador foi detectado.
Exemplo
Este CSV, com um nome entre aspas que contém uma vírgula:
id,name,email,city,signup_date,active,orders
1,Ada Lovelace,[email protected],London,2024-03-01,true,12
2,"Hopper, Grace",[email protected],New York,2024-04-17,false,3
vira:
[
{
"id": 1,
"name": "Ada Lovelace",
"email": "[email protected]",
"city": "London",
"signup_date": "2024-03-01",
"active": true,
"orders": 12
},
{
"id": 2,
"name": "Hopper, Grace",
"email": "[email protected]",
"city": "New York",
"signup_date": "2024-04-17",
"active": false,
"orders": 3
}
]
As aspas em volta de “Hopper, Grace” mantiveram a vírgula dentro do nome. Os IDs e as quantidades de pedidos viraram números, true e false viraram booleanos, e as datas continuaram como strings, porque o JSON não tem tipo de data.
CSV do Excel em português
Quando você salva uma planilha como CSV no Excel configurado para o Brasil, o separador costuma ser o ponto e vírgula, e os números usam vírgula decimal e ponto de milhar. O conversor detecta o ponto e vírgula sozinho. Este arquivo:
nome;cidade;cep;preço;ativo
Ana Souza;São Paulo;01310-100;1.234,56;true
João Lima;Recife;50030-230;89,90;false
é lido com o separador ; e vira objetos com as chaves nome, cidade, cep, preço e ativo. Os acentos são mantidos nas chaves e nos valores. Os valores true e false viram booleanos, mas os preços "1.234,56" e "89,90" continuam como texto, porque no JSON os números usam ponto decimal e não têm separador de milhar. Se você precisa desses preços como números, troque o formato antes (por exemplo, 1234.56) com a ferramenta de substituir texto, ou converta na própria planilha.
Valores que continuam como texto
Transformar todo valor com cara de número em número pode estragar os dados. Este conversor mantém o valor como texto quando a conversão mudaria esse valor:
[
{
"name": "Ada",
"zip": "02134",
"phone": "0207 946 0000"
}
]
O código postal mantém o zero à esquerda. A mesma regra vale para IDs com zeros à esquerda e para números inteiros mais longos do que o JavaScript consegue guardar com exatidão. Um preço escrito com vírgula decimal, como 2,50 em um arquivo com ponto e vírgula, também continua como string, porque não é um número JSON válido.
JSON para CSV
Clique em JSON para CSV e cole um array de objetos. Toda chave que aparece em qualquer objeto vira uma coluna, na ordem em que aparece pela primeira vez. Com Achatar objetos aninhados ligado, os dados aninhados ganham nomes de coluna com pontos:
id,name,address.city,address.zip,tags
1,Ada,London,NW1,"[""admin"",""dev""]"
2,Grace,New York,,
A Grace não tinha código postal, então essa célula fica vazia. O array de tags foi escrito como texto JSON, com as aspas dobradas como o formato CSV exige. Um array de arrays é escrito linha por linha, sem cabeçalho. Clique em Baixar para salvar como um arquivo .csv que o Excel, o Numbers e o Planilhas Google conseguem abrir. O resultado usa vírgula como separador; se o seu Excel abrir tudo em uma coluna só, use a opção Dados, Texto para Colunas, ou importe o arquivo escolhendo a vírgula como delimitador.
Quando as linhas não se encaixam
Se uma linha tiver mais ou menos valores que o cabeçalho, o conversor ainda gera o JSON e aponta o problema pelo número da linha na planilha, por exemplo “Linha 3: Too many fields: expected 2 fields but parsed 3” (campos demais: eram esperados 2 e foram lidos 3). A mensagem vem da biblioteca Papa Parse e continua em inglês. A linha 1 é o cabeçalho. Uma aspa que é aberta e nunca fechada é apontada do mesmo jeito. Corrija a linha no seu arquivo e cole de novo.
Dicas
- Confira o JSON com o formatador JSON, que também ordena as chaves e minifica.
- Precisa de YAML para um arquivo de configuração? Converta para JSON aqui e depois use a ferramenta de converter JSON para YAML.
- Para mostrar os dados em um README, o gerador de tabela Markdown aceita o mesmo CSV ou as células da planilha.
- Desligue Converter números e true/false quando todos os valores precisarem continuar como strings, por exemplo antes de importar em um sistema que faz a própria tipagem.
Outras formas de converter CSV para JSON
- Python: o DictReader do módulo csv embutido lê as linhas como dicionários, e o json.dump as escreve. Use
delimiter=';'para arquivos do Excel em português. - csvkit: o comando
csvjsonconverte um arquivo CSV para JSON no terminal. - Excel e Planilhas Google não exportam JSON. Salve como CSV primeiro e depois converta aqui.
- jq faz o caminho contrário, de JSON para CSV, com o filtro
@csv.
Tudo acontece no seu navegador. Arquivos grandes levam um pouco mais de tempo, e nada é enviado.