Conversor de CSV para JSON - Ferramenta Gratuita de Conversão de Arquivos Online
Converta CSV para JSON e JSON para CSV instantaneamente no seu navegador. Conversão de dados segura e rápida com pré-visualização e download. Nenhum upload necessário.
Conversor de Arquivos CSV/JSON
Converta entre formatos CSV e JSON com facilidade. Faça upload do seu arquivo, visualize os dados e baixe o resultado convertido.
Conversor de CSV para JSON
Conversor de JSON para CSV
Documentação
O que é um conversor de CSV para JSON?
Um conversor de CSV para JSON é uma ferramenta que transforma dados do formato CSV (valores separados por vírgulas) em JSON (JavaScript Object Notation), ou no sentido inverso. Este conversor funciona inteiramente no navegador. Ele nunca envia o arquivo carregado para um servidor, portanto os dados permanecem no dispositivo do usuário.
CSV é um formato de texto simples usado para armazenar tabelas, como planilhas exportadas do Excel ou do Google Sheets. JSON é um formato de texto composto por pares de chave e valor, amplamente usado para transferir dados entre aplicações web e APIs. Como os dois formatos organizam os dados de maneiras diferentes, a conversão entre eles exige um conjunto definido de regras, descritas abaixo.
Como converter CSV para JSON
- Clique em "Upload CSV File" e escolha um arquivo
.csvno dispositivo. - A ferramenta exibe uma prévia do conteúdo bruto do arquivo.
- Clique em "Convert to JSON". A ferramenta lê a primeira linha como cabeçalhos das colunas e transforma cada uma das outras linhas em um objeto JSON.
- O resultado aparece na prévia de saída, formatado com indentação.
- Clique em "Download JSON" para salvá-lo como um arquivo
.jsonou em "Copy JSON" para copiar o texto.
Como converter JSON para CSV
- Clique em "Upload JSON File" e escolha um arquivo
.json. O arquivo deve conter um array JSON de objetos, por exemplo[{"Name":"Ann"},{"Name":"Bo"}]. - A ferramenta exibe uma prévia do texto JSON bruto.
- Clique em "Convert to CSV". A ferramenta reúne todas as chaves usadas em todos os objetos e transforma cada uma em uma coluna.
- O resultado aparece na prévia de saída como texto CSV.
- Clique em "Download CSV" para salvá-lo como um arquivo
.csvou em "Copy CSV" para copiar o texto.
Não há limites de carregamento impostos por um servidor, pois nenhum dado sai do navegador. Um arquivo muito grande ainda pode deixar a aba do navegador lenta, já que o arquivo inteiro permanece na memória durante a conversão.
Regras de conversão de CSV para JSON
O conversor lê a primeira linha do arquivo como nomes das colunas. Cada linha seguinte se torna um objeto JSON, com os nomes das colunas como chaves. Uma linha com mais valores do que o número de cabeçalhos recebe chaves extras nomeadas pela posição absoluta na linha; assim, com 3 cabeçalhos, o quarto valor recebe a chave field_4, o quinto recebe field_5 e assim por diante, o que significa que nenhum dado é descartado. Uma linha com menos valores recebe strings vazias para as chaves ausentes. Se dois cabeçalhos tiverem o mesmo nome, o segundo será renomeado com um sufixo; assim, a, a se torna as chaves a e a_2.
O conversor segue as regras de CSV definidas na RFC 4180, o padrão técnico do formato. Uma vírgula dentro de um campo só é tratada como um valor desse campo, e não como uma quebra de coluna, se o campo estiver entre aspas duplas, por exemplo "Smith, John". Uma quebra de linha dentro das aspas é mantida como parte do valor, em vez de ser tratada como uma nova linha. Duas aspas duplas dentro de um campo entre aspas representam um único caractere de aspas literal.
Apenas vírgulas são reconhecidas como separadores de colunas; a ferramenta não detecta nem aceita ponto e vírgula, tabulações ou outros delimitadores.
Cada valor é verificado e convertido para um tipo:
- Um valor escrito como um número simples, como
42ou-3.5, torna-se um número JSON. - O texto
trueoufalse, em qualquer combinação de maiúsculas e minúsculas, torna-se um booleano JSON. - Qualquer outra coisa permanece como uma string JSON, incluindo células vazias, que se tornam strings vazias.
- Um número com zero à esquerda, como
00512, permanece como string, pois o zero à esquerda costuma ter significado, como em um código postal ou número de identificação. - Um número só é aceito se, ao ser escrito novamente, produzir exatamente o mesmo texto. Inteiros longos acima de 9,007,199,254,740,991, o maior número inteiro que um número JavaScript representa exatamente, normalmente falham nessa verificação e permanecem como strings, para que nenhum dígito seja perdido.
- Um valor que o arquivo já colocou entre aspas é sempre mantido como string, mesmo que pareça um número, pois as aspas são interpretadas como uma indicação do autor de que se trata de texto.
Linhas vazias no arquivo são ignoradas e não produzem objetos vazios.
Regras de conversão de JSON para CSV
O conversor examina cada objeto do array e reúne o conjunto completo de chaves usadas em todos eles. Essas chaves se tornam os cabeçalhos das colunas CSV, na ordem em que aparecem pela primeira vez. Se um objeto não tiver uma chave que outro objeto possui, sua célula fica vazia, em vez de causar um erro.
A conversão de JSON para CSV não transforma objetos aninhados em colunas separadas. Um valor que seja um objeto ou array é escrito novamente como texto JSON dentro de uma única célula; assim, {"b": 1} se torna a célula {"b":1} e [1, 2] se torna a célula [1,2]. Nada é perdido, mas a parte aninhada permanece em uma coluna, em vez de ser dividida. Achate manualmente o JSON aninhado antes, se cada parte precisar de sua própria coluna.
Um valor null e uma chave que um objeto possui, mas outro não, produzem uma célula vazia.
Um valor de célula que contenha uma vírgula, uma aspa ou uma quebra de linha é colocado entre aspas duplas na saída, e qualquer aspa dentro dele é duplicada, de acordo com a regra de escape de CSV acima.
O JSON de entrada deve ser um array, e cada item dele deve ser um objeto. Um número, uma string, null ou um array aninhado no lugar de um objeto produz o erro "JSON must be an array of objects". Um array sem nenhum item produz o erro "The JSON array is empty. Add at least one object to convert." Um arquivo carregado sem conteúdo produz o erro "The uploaded file is empty."
Exemplo prático
Arquivo CSV inicial:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4A conversão para JSON produz:
1[
2 {
3 "Name": "Ann Lee",
4 "Age": 29,
5 "Member": true
6 },
7 {
8 "Name": "Bo, Jr.",
9 "Age": 7,
10 "Member": false
11 }
12]
13Observe que "Bo, Jr." manteve a vírgula porque o campo estava entre aspas no arquivo de origem, e Age e Member se tornaram um número e um booleano.
A conversão desse mesmo JSON de volta para CSV, com uma linha adicionada na qual Age está ausente, produz:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5O valor Age ausente se torna uma célula vazia, e a vírgula em "Bo, Jr." faz com que o campo seja colocado entre aspas novamente na saída.
Usos comuns
- Análise de dados: transformar uma exportação CSV de uma planilha ou ferramenta de análise em JSON para que possa ser processada com JavaScript e, em seguida, converter os resultados de volta para CSV para um relatório.
- Testes de API: um desenvolvedor que cria uma API capaz de aceitar carregamentos de CSV pode converter arquivos de exemplo para JSON e verificar se um analisador produz os objetos esperados.
- Migração de dados: mover registros de um sistema que exporta CSV para um sistema que aceita apenas JSON, ou no sentido inverso.
- Inspeção rápida: transformar um arquivo JSON em um CSV semelhante a uma tabela para facilitar a leitura, ou fazer o caminho inverso.
Bibliotecas de programação oferecem a mesma conversão para tarefas maiores ou repetidas, como os módulos csv e json do Python, ou pandas. Ferramentas de linha de comando, como csvkit e jq, realizam conversões e filtragens pelo terminal. Essas opções são adequadas ao processamento em lote; esta ferramenta no navegador é adequada para um arquivo pontual, sem necessidade de instalar nada.
Dúvidas frequentes
O arquivo carregado é enviado para um servidor? Não. A conversão é executada em JavaScript dentro da aba do navegador. O arquivo é lido no dispositivo local e nunca é transmitido.
O conversor aceita delimitadores diferentes de vírgula, como ponto e vírgula ou tabulação? Não. A versão atual lê apenas valores separados por vírgulas. Um arquivo que use outro delimitador precisa ser convertido primeiro para o formato separado por vírgulas, por exemplo, substituindo o delimitador em um editor de texto.
Por que um número como 00512 permaneceu como string de texto na saída JSON?
Zeros à esquerda geralmente têm significado, como em um código postal, por isso o conversor mantém esse valor como string em vez de transformá-lo no número 512, o que eliminaria o zero.
O que acontece se eu converter um JSON que contém objetos aninhados?
O objeto aninhado é escrito como texto JSON em uma única célula, por exemplo {"b":1}. Os dados são preservados, mas não são divididos em colunas separadas. Achate os dados aninhados antes, se cada campo precisar de sua própria coluna.
E se meu JSON não for um array de objetos?
A ferramenta exibe um erro e não converte nada. A entrada deve ser um array JSON no qual cada item seja um objeto, por exemplo [{"a":1},{"a":2}].
A primeira linha de um arquivo CSV sempre precisa ser uma linha de cabeçalho? Sim. O conversor sempre trata a primeira linha como nomes das colunas. Um arquivo sem linha de cabeçalho terá sua primeira linha de dados interpretada incorretamente como cabeçalho.
Referências
- Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, outubro de 2005. https://www.rfc-editor.org/rfc/rfc4180
- Bray, T., ed. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, dezembro de 2017. https://www.rfc-editor.org/rfc/rfc8259
- "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON