Pular para o conteúdo
Case Converter Online
pt

Converter CSV para JSON

Cole um CSV ou abra um arquivo .csv e receba um array JSON enquanto digita. O separador é detectado para você, inclusive o ponto e vírgula do Excel em português, e dá para converter JSON de volta para CSV.

Cole um CSV ou clique em Exemplo. Seus dados ficam no seu navegador.

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

  1. Escolha CSV para JSON (ou JSON para CSV, para o sentido contrário).
  2. Cole seus dados, clique em Abrir arquivo para carregar um arquivo .csv ou .tsv, ou clique em Exemplo.
  3. 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 12 em número e true em 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.
  4. 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 csvjson converte 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.

CSV para JSON: perguntas e respostas

Por que o meu CEP continua entre aspas no JSON?

De propósito. Um valor como 02134 perderia o zero à esquerda como número, então os valores com zeros à esquerda ficam como texto. O mesmo vale para números inteiros grandes demais para serem guardados com exatidão, como IDs longos. Números comuns como 12 ou 3.5 viram números JSON. CEPs com hífen, como 01310-100, já são texto de qualquer forma.

Meu arquivo usa ponto e vírgula. Vai funcionar?

Vai. Com Separador em Detectar, o conversor procura vírgulas, pontos e vírgulas, tabulações e barras verticais e escolhe o que se encaixa. O Excel em português do Brasil e em vários outros idiomas salva CSV com ponto e vírgula, e a linha de status informa qual separador foi encontrado.

Como os objetos aninhados são tratados no JSON para CSV?

Com Achatar objetos aninhados ligado, um objeto aninhado vira várias colunas com nomes separados por pontos, como address.city. Os arrays são escritos como texto JSON dentro de uma célula. Toda chave que aparece em qualquer objeto vira uma coluna.

Meus dados são enviados para algum lugar?

Não. O arquivo é lido e convertido no seu navegador com o Papa Parse. Nada é enviado para um servidor, então é seguro para listas de clientes e outros dados privados.

Mais ferramentas de código e dados

Ver todas as ferramentas