Conversor de CSV para JSON
Converta CSV em JSON e JSON em CSV, com campos entre aspas, delimitadores vírgula, ponto e vírgula, tabulação ou barra vertical, inferência de tipos e pré-visualização da tabela.
Pré-visualização
Fixe aqui as ferramentas. Ficam guardadas neste navegador.
Fixe uma ferramenta e o autocolante dela aparece aqui.
Converta CSV em JSON e JSON em CSV, com campos entre aspas, delimitadores vírgula, ponto e vírgula, tabulação ou barra vertical, inferência de tipos e pré-visualização da tabela.
Pré-visualização
O RFC 4180 descreve o CSV como registos separados por quebras de linha e campos separados por vírgulas. Um campo que contenha uma vírgula, aspas ou uma quebra de linha fica entre aspas duplas, e as aspas dentro dele escrevem-se duas vezes. O formato não tem tipos, por isso todos os valores são texto, e um ficheiro não tem forma de indicar que delimitador nem que codificação de caracteres usa.
Os ficheiros reais variam. Uma folha de cálculo configurada para uma região que escreve as casas decimais com vírgula costuma exportar com ponto e vírgula, as ferramentas de bases de dados exportam muitas vezes com tabulações, e as quebras de linha podem ser CRLF, LF ou CR. Esta ferramenta lê todos estes casos, remove a marca de ordem de bytes (BOM), ignora as linhas em branco e mantém como texto umas aspas soltas dentro de um campo sem aspas.
Com Deteção automática, a ferramenta divide as primeiras 20 linhas com vírgula, ponto e vírgula, tabulação e barra vertical, e pontua cada delimitador pelo número de colunas que dá e por quantas linhas têm esse mesmo número. Um delimitador que deixa aspas a meio de um campo tem uma pontuação mais baixa. A pré-visualização mostra o resultado, por isso um palpite errado é fácil de ver e de corrigir à mão.
Com Inferir tipos, um campo vazio passa a null, true e false passam a booleanos, e um número decimal simples passa a número JSON, escrito exatamente como estava, por isso 49.90 continua a ser 49.90. Tudo o resto continua a ser string, incluindo valores que só parecem números: 007, +39 e 1e5 são mais vezes códigos do que quantidades.
Uma linha com menos ou mais campos do que o cabeçalho é convertida na mesma, e o seu número de linha fica listado. No array de objetos, as chaves em falta são omitidas e os campos a mais recebem o nome column_N, segundo a sua posição. Uma célula de cabeçalho vazia recebe o mesmo tipo de nome, e um nome repetido recebe um sufixo como _2, para que nenhum valor substitua outro.
Um array de objetos dá uma linha por objeto. O cabeçalho é a união de todas as chaves, pela ordem em que aparecem pela primeira vez, e um objeto a que falte uma chave fica com um campo vazio. Um array ou objeto aninhado é escrito na sua célula como texto JSON, e null passa a campo vazio. Um array de arrays é escrito linha a linha, tal como está.
Os campos só ficam entre aspas quando contêm o delimitador, aspas ou uma quebra de linha. O ficheiro transferido separa os registos com CRLF, como especifica o RFC 4180.
Não. O ficheiro é lido pelo seu navegador e convertido no seu dispositivo. A ferramenta não faz nenhum pedido de rede com ele, e a política de segurança do site bloqueia pedidos a qualquer outro servidor.
Os números JSON não podem ter zeros à esquerda, e transformar 007 em 7 perderia informação num código postal ou num código de produto. A ferramenta só converte números decimais simples. Desative a inferência de tipos para manter todos os valores como strings.
Escolha o delimitador na lista. A deteção analisa as primeiras 20 linhas e pode ser enganada por um ficheiro com uma só coluna ou com linhas muito irregulares. A linha ao lado do título da pré-visualização indica o delimitador detetado.
Um campo entre aspas duplas pode conter quebras de linha, que passam a \n na string JSON. Os números de linha dos avisos são linhas do ficheiro, por isso, depois de um campo destes, são maiores do que os números dos registos.
Abre numa janela própria e continua a funcionar offline.
Para instalar, toque no botão Partilhar e depois em «Adicionar ao ecrã principal».