Conversor CSV ↔ JSON
Converta CSV em JSON ou JSON em CSV diretamente no navegador.
Como usar
Cole um CSV e clique em “CSV → JSON” para obter um array de objetos, um para cada linha, com as chaves da linha de cabeçalho. Cole um array JSON de objetos e clique em “JSON → CSV” para receber uma tabela de volta, com um cabeçalho formado por todas as chaves que aparecem, na ordem em que cada uma aparece pela primeira vez. O separador pode ser vírgula, ponto e vírgula ou tabulação, e vale nas duas direções. Arquivos de países que usam a vírgula como separador decimal costumam ser separados por ponto e vírgula: escolha “Ponto e vírgula” para eles; caso contrário, cada linha é lida como um único campo ou é dividida nas vírgulas decimais.
Um campo que contém o separador, uma aspa ou uma quebra de linha precisa vir entre aspas duplas, e uma aspa dentro dele é escrita duas vezes: "She said ""hi""" é lido como She said "hi". As linhas em branco são ignoradas, então o cabeçalho é a primeira linha com conteúdo; as células que faltam viram strings vazias, e as células além da última coluna do cabeçalho são descartadas. Um nome de cabeçalho vazio vira column_ mais a posição da coluna, como column_3, e um nome repetido recebe o primeiro sufixo livre (name, name_2), para que nenhuma coluna sobrescreva outra. Uma aspa que nunca é fechada é informada como CSV inválido.
Todo valor do CSV vira uma string JSON, inclusive números e true ou false: o CSV não tem tipos, então o conversor não tenta adivinhar. É isso que mantém intactos os zeros à esquerda (007, CEPs, números de telefone) e os identificadores longos; converta para número, no seu próprio código, os campos de que precisar. No sentido contrário, números e true ou false são escritos como estão, null vira uma célula vazia, e um objeto ou array aninhado é escrito como texto JSON dentro da célula.
O “JSON → CSV” aceita um array de objetos ou um único objeto, que vira uma linha. Um array de valores simples gera uma única coluna chamada value. As linhas são separadas por quebras de linha, e uma célula só fica entre aspas quando precisa. Tudo roda no seu navegador; nada é enviado.
Exemplo
O cabeçalho vira o nome das propriedades JSON. As duas linhas de dados viram dois objetos.
name,email / Ana,[email protected][{"name": "Ana", "email": "[email protected]"}]id / 007"id": "007": os zeros à esquerda ficam, porque os valores são mantidos como texto."Lisbon, Portugal" em um campoContinua sendo um único valor; sem as aspas, seria dividido em duas colunas.name;price / Pão;1,20 com “Ponto e vírgula”[{"name": "Pão", "price": "1,20"}]. Se “Vírgula” estiver escolhida no lugar, o cabeçalho vira um único campo, name;price, e a linha é lida como Pão;1: o 20 cai numa célula extra e é descartado.[{"a":1,"tags":["x","y"]}] → CSVa,tags e depois 1,"[""x"",""y""]": o array é escrito como texto JSON e fica entre aspas, porque contém aspas e uma vírgula.
Perguntas frequentes
Por que meus identificadores perderam os zeros à esquerda?
Não foi neste conversor: ele mantém todo valor do CSV como texto, então 007 continua 007. Os zeros costumam se perder antes, quando o arquivo é aberto e salvo numa planilha que lê 007 como o número 7. Mantenha identificadores, CEPs e números de telefone como texto de ponta a ponta.
Por que alguns arquivos CSV usam ponto e vírgula?
Porque em boa parte da Europa e da América do Sul a vírgula é o separador decimal, então ela não pode separar também os campos. Essas exportações usam ponto e vírgula no lugar — o mesmo formato com outro separador — e é por isso que um arquivo que abre certinho num lugar aparece como uma coluna só em outro. Escolha “Ponto e vírgula” antes de convertê-lo.
Por que os números viram strings no JSON?
Porque o CSV não diz quais valores são números. Ler 007, 1e3 ou um identificador de 20 dígitos como número mudaria o valor, então o conversor deixa essa decisão com você.
Ele converte JSON aninhado?
Em parte. Cada objeto vira uma linha e cada chave de primeiro nível, uma coluna; objetos e arrays aninhados são escritos como texto JSON dentro da célula, em vez de se espalharem por colunas extras.
O que acontece com uma aspa dentro de um campo?
Ela é duplicada e o campo fica entre aspas, como o CSV exige: She said "hi" vira "She said ""hi""".