BrowserTools
Publicidade
Início / Conversores / Conversor CSV ↔ JSON

Conversor CSV ↔ JSON

Converte entre CSV e JSON localmente com delimitadores e aspas personalizáveis, sem carregamentos nem limites.

A carregar Conversor CSV ↔ JSON… Se nada acontecer, ativa o JavaScript.

CSV (valores separados por vírgulas) e JSON (notação de objetos JavaScript) são os dois formatos de texto simples mais usados para dados estruturados. O CSV tem as suas origens nos primórdios da informática; os programas de mainframe já trocavam dados tabulares em forma delimitada por vírgulas nos anos 60, mas o formato não teve uma especificação formal até à publicação do RFC 4180 em outubro de 2005. Esta ausência de uma norma criou décadas de dialetos incompatíveis: algumas implementações usam ponto e vírgula como delimitador, outras usam tabulações; algumas colocam aspas em todos os campos, outras apenas nos que contêm caracteres especiais; os fins de linha variam entre sistemas. Apesar destas particularidades, o CSV continua a ser o formato de exportação universal para folhas de cálculo, bases de dados e ferramentas de análise de dados, pela sua simplicidade e legibilidade para as pessoas.

Exemplos

Entrada name,age Ada,36 Bob,40
Saída [{"name":"Ada","age":"36"},{"name":"Bob","age":"40"}]

A linha de cabeçalho torna-se as chaves do objeto; cada linha seguinte torna-se um objeto.

Perguntas frequentes

Os meus ficheiros são carregados para um servidor?
Não. A conversão é executada inteiramente no teu navegador usando JavaScript. Os teus dados nunca são transmitidos pela rede, o que torna esta ferramenta segura para dados empresariais sensíveis, informações de identificação pessoal ou conjuntos de dados confidenciais.
O que é o RFC 4180 e por que é importante?
O RFC 4180, publicado em 2005, é o mais próximo de uma norma oficial que o CSV tem. Define regras para colocar aspas em campos que contêm vírgulas, quebras de linha ou aspas duplas, e especifica que uma aspa dupla dentro de um campo com aspas é escapada duplicando-a. O analisador desta ferramenta implementa o RFC 4180, o que significa que trata corretamente os ficheiros produzidos pelo Excel, pelo Google Sheets e pela maioria dos utilitários de exportação de bases de dados.
Que delimitadores são suportados?
A ferramenta suporta vírgula, ponto e vírgula, tabulação e barra vertical como delimitadores. Os ficheiros delimitados por ponto e vírgula são comuns em configurações regionais europeias onde a vírgula é usada como separador decimal. Os ficheiros delimitados por tabulações (TSV) são produzidos frequentemente por ferramentas de bases de dados e são menos ambíguos do que o CSV porque os valores dos campos raramente contêm tabulações.
Como são tratados os campos com aspas e as vírgulas embutidas?
Os campos que contêm o caráter delimitador, uma aspa dupla ou uma quebra de linha têm de ser envolvidos em aspas duplas, de acordo com o RFC 4180. Uma aspa dupla literal dentro de um campo destes é representada por duas aspas duplas consecutivas. O analisador trata todos estes casos corretamente, por isso um valor de campo como She said, "hello" é preservado sem corrupção na ida e volta.
O que acontece aos tipos de dados ao converter de CSV para JSON?
O CSV não tem sistema de tipos, cada valor é uma cadeia de texto. Por predefinição, o conversor preserva os valores como cadeias de texto na saída JSON. Se precisares que os números ou booleanos tenham o tipo correto, terás de pós-processar o JSON, por exemplo com um pequeno script que percorre a lista e converte campos específicos.
Posso converter JSON de volta para CSV?
Sim. A ferramenta funciona em ambas as direções. Para a conversão de JSON para CSV, o valor JSON de nível superior tem de ser uma lista de objetos com chaves consistentes. As chaves do primeiro objeto tornam-se a linha de cabeçalho do CSV. Os objetos e listas aninhados são serializados como cadeias JSON na célula CSV correspondente.
Existe um limite de tamanho de ficheiro?
Não há um limite imposto; a conversão é limitada apenas pela memória disponível do teu navegador. Os ficheiros até cerca de 50 MB são normalmente processados em segundos. Os ficheiros muito grandes (100 MB ou mais) podem fazer com que o separador do navegador fique lento ou deixe de responder. Para o processamento em massa de ficheiros grandes, ferramentas de linha de comandos como o jq, o csvkit ou o Miller são mais apropriadas.
Por que é que o Excel usa ponto e vírgula em vez de vírgulas nos ficheiros CSV?
Em configurações regionais onde a vírgula é usada como separador decimal (a maior parte da Europa continental), o Excel usa o ponto e vírgula como separador de listas para evitar ambiguidades. Caso contrário, um número como 1,234 seria interpretado como dois campos separados. Se abrires um ficheiro exportado de uma instalação do Excel definida para uma configuração regional europeia, muda o delimitador para ponto e vírgula nesta ferramenta.
Quando devo usar JSON em vez de CSV?
O JSON é a melhor escolha quando os teus dados têm uma estrutura hierárquica ou aninhada, quando precisas de preservar os tipos de dados (números, booleanos, nulos) ou quando a saída vai ser consumida diretamente por uma aplicação JavaScript ou uma API REST. O CSV é preferível quando os dados são puramente tabulares, quando o tamanho do ficheiro é crítico, ou quando o destinatário vai abrir o ficheiro numa aplicação de folha de cálculo.
Como lido com ficheiros CSV com problemas de codificação?
Os ficheiros CSV não transportam metadados de codificação, por isso um ficheiro guardado em Windows-1252 (uma codificação comum de aplicações Windows mais antigas) pode mostrar caracteres ilegíveis quando aberto como UTF-8. Se vires símbolos estranhos, tenta abrir o ficheiro num editor de texto, guardá-lo explicitamente como UTF-8 e depois colar o conteúdo nesta ferramenta. As exportações modernas do Excel e do Google Sheets usam UTF-8 por predefinição, com ou sem BOM (marca de ordem de bytes).

Sobre Conversor CSV ↔ JSON

O JSON surgiu no início dos anos 2000, normalizado por Douglas Crockford, e tornou-se rapidamente o formato dominante para as APIs web porque corresponde naturalmente aos objetos e listas que todas as linguagens de programação compreendem. Quando um programador obtém dados de uma API REST, estes chegam quase sempre em JSON. Quando um analista de dados exporta uma tabela do Excel ou do PostgreSQL, esta sai quase sempre em CSV. Converter entre os dois é, por conseguinte, uma das tarefas de preparação de dados mais comuns no desenvolvimento de software, na engenharia de dados e na inteligência de negócio. Alguns cenários habituais do mundo real incluem carregar uma exportação CSV de um CRM numa aplicação JavaScript, achatar uma resposta JSON de uma API para uma folha de cálculo para revisão, ou preparar dados para importação numa ferramenta que só aceita um dos dois formatos.

Este conversor funciona inteiramente dentro do teu navegador, não são enviados dados para nenhum servidor. Podes colar texto diretamente ou carregar um ficheiro, escolher a direção da conversão (CSV para JSON ou JSON para CSV), configurar o caráter delimitador e alternar se a primeira linha deve ser tratada como cabeçalho. A saída JSON é formatada de forma legível. Os casos-limite, como campos que contêm o caráter delimitador, quebras de linha embutidas dentro de campos com aspas e escapes de aspas duplas, são todos tratados de acordo com as regras do RFC 4180.

Algumas armadilhas práticas a ter em conta: o CSV não tem um conceito nativo de tipos de dados, por isso números, datas e valores booleanos chegam todos como cadeias de texto no JSON analisado; poderás ter de pós-processar a saída para converter os campos para os tipos corretos. Os ficheiros exportados do Excel em configurações regionais europeias usam muitas vezes ponto e vírgula como delimitador em vez de vírgulas; muda a definição do delimitador se as tuas colunas não estiverem a separar-se corretamente. Os ficheiros grandes com mais de 50 MB podem ser processados lentamente no navegador; para esses, uma ferramenta de linha de comandos como o jq ou o csvkit será mais rápida. Ao converter JSON para CSV, os objetos e listas aninhados são achatados ou serializados como cadeias de texto, por isso estruturas muito aninhadas podem exigir limpeza manual.

Dos cartões perfurados às APIs REST: as improváveis vidas paralelas do CSV e do JSON

O formato de valores separados por vírgulas é um dos formatos de intercâmbio de dados mais antigos que sobrevivem na informática. Os programas de mainframe da IBM já trocavam dados em ficheiros de texto delimitados por vírgulas nos anos 60, antecedendo o computador pessoal em mais de uma década. O formato era tão simples, um registo por linha, campos separados por um caráter conhecido, que não precisava de documentação formal; toda a gente concordava simplesmente por convenção. Quando surgiram os primeiros programas de folhas de cálculo no final dos anos 70 (VisiCalc em 1979, Lotus 1-2-3 em 1983), o CSV tornou-se a ponte natural entre eles e as bases de dados e programas que os rodeavam. Sobreviveu à transição dos mainframes para os minicomputadores, para os PC e para a web quase sem alterações, razão pela qual um ficheiro CSV produzido por um programa COBOL em 1985 ainda pode ser aberto hoje no Microsoft Excel.

O JSON tem uma história muito mais curta, mas igualmente interessante. Douglas Crockford, o criador do formato, disse que "descobriu" o JSON em vez de o inventar; a sintaxe já estava presente no JavaScript como forma de escrever literais de objeto, e Crockford limitou-se a identificá-la como um formato de dados autónomo e útil por volta de 2001. O primeiro analisador de JSON foi escrito em cerca de 30 linhas de código. Em 2006, o JSON tinha sido formalizado como ECMA-404 e estava a substituir rapidamente o XML nas APIs web por ser mais leve, mais fácil de ler e por corresponder diretamente às estruturas de dados nativas de todas as principais linguagens de programação. Hoje o JSON é tão omnipresente que é usado em ficheiros de configuração (package.json, tsconfig.json), no armazenamento em bases de dados (o tipo jsonb do PostgreSQL, o modelo de documentos do MongoDB), em formatos de registo e em inúmeros outros fins que o seu criador nunca antecipou.

A tensão entre o CSV e o JSON reflete uma tensão mais ampla na engenharia de software entre a simplicidade e a expressividade. O CSV ganha na simplicidade: qualquer pessoa consegue ler e editar um ficheiro CSV num editor de texto ou folha de cálculo sem saber nada de programação. O JSON ganha na expressividade: consegue representar estruturas aninhadas, valores tipados e esquemas mistos que o CSV não consegue. Um inquérito de 2023 a engenheiros de dados revelou que o CSV e o JSON, em conjunto, representam mais de 70 % de todas as trocas de ficheiros de dados entre organizações, uma estatística notável para dois formatos cujos desenhos fundamentais têm décadas, num campo que se reinventa de poucos em poucos anos.

Publicidade
Publicidade
Publicidade