DEV Community

Victor Hugo Santana
Victor Hugo Santana

Posted on

Como Criar um Conversor de CSV para JSON com JavaScript e Node.js

Como Criar um Conversor de CSV para JSON com JavaScript

Introdução

Como criar um conversor rápido e simples de CSV para JSON. Entenderemos como transformar dados tabulares em um formato leve e prático para uso em projetos JavaScript e Node.js.

O Que é um Arquivo CSV?

CSV (Comma-Separated Values) é um formato de arquivo de texto simples usado para armazenar dados tabulares, sem formatação. É muito utilizado em programas como Excel e Google Sheets, apesar de esses aplicativos utilizarem outros formatos padrão, como XLS. Converter arquivos para CSV ajuda a manter os dados leves e mais fáceis de compartilhar, especialmente por meio de separadores como vírgulas ou ponto e vírgula.

Ao trabalhar com JavaScript, é comum converter CSV para JSON, um formato amplamente usado em aplicações web. Neste tutorial, construiremos um conversor eficiente, ideal para uso em projetos pessoais.


Por Que Criar Seu Próprio Conversor?

Embora existam sites que oferecem ferramentas para converter CSV para JSON, nem sempre é seguro confiar neles. Criar sua própria solução permite evitar riscos de vazamento de dados, além de proporcionar uma ferramenta personalizada e prática para o dia a dia.


Colocando a Mão na Massa

Pré-requisitos:

  • Ter o Node.js instalado.

Para verificar sua instalação, abra o terminal e execute:

node -v
Enter fullscreen mode Exit fullscreen mode

Passo 1: Criando o Projeto

  1. Inicialize um projeto Node.js:
   npm init -y
Enter fullscreen mode Exit fullscreen mode

Isso criará um arquivo package.json.

  1. Instale a biblioteca que usaremos para processar arquivos CSV:
   npm install csv-parser
Enter fullscreen mode Exit fullscreen mode

Criando o Conversor

Agora vamos ao código:

  1. Criar o Arquivo do Script
    Crie um arquivo chamado index.js e abra-o no editor de código.

  2. Importar Módulos Necessários
    No arquivo index.js, importe os módulos necessários:

   const fs = require('fs');
   const csv = require('csv-parser');
Enter fullscreen mode Exit fullscreen mode
  • fs é um módulo nativo do Node.js para manipulação de arquivos.
  • csv-parser é a biblioteca instalada para processar arquivos CSV.
  1. Configurar o Nome do Arquivo Defina o arquivo CSV de entrada:
   const inputFile = 'teste.csv'; // Nome do arquivo CSV
Enter fullscreen mode Exit fullscreen mode
  1. Ler e Converter o Arquivo Configure a leitura e conversão do arquivo:
   const results = [];

   fs.createReadStream(inputFile)
     .pipe(csv())
     .on('data', (data) => results.push(data)) // Adiciona cada linha ao array results
     .on('end', () => {
       const jsonOutput = JSON.stringify(results, null, 2);

        const outputFilePath = 'output.json';

        fs.writeFileSync(outputFilePath, jsonOutput);
        console.log("Concluido: ", outputFilePath)
     });
Enter fullscreen mode Exit fullscreen mode

Explicação:

  • fs.createReadStream(inputFile) lê o arquivo CSV.
  • .pipe(csv()) processa os dados do arquivo.
  • .on('data') captura cada linha do CSV como objeto e a adiciona ao array results.
  • .on('end') é chamado quando a leitura termina, criando um novo arquivo.json para guardar o json convertido

Personalizando o Separador

Caso o arquivo use separadores diferentes, como ponto e vírgula, você pode configurar a biblioteca:

.pipe(csv({ separator: ';' }))
Enter fullscreen mode Exit fullscreen mode

Isso garante que o script interprete corretamente os valores separados.


Testando o Script

  1. Crie um arquivo CSV chamado teste.csv com o seguinte conteúdo:
   nome,idade,cidade
   Victor,25,Pará
   Hugo,30,São Paulo
Enter fullscreen mode Exit fullscreen mode
  1. Execute o script no terminal:
   node index.js
Enter fullscreen mode Exit fullscreen mode
  1. O resultado será exibido no formato JSON:
   [
     { "nome": "Victor", "idade": "25", "cidade": "Pará" },
     { "nome": "Ana", "idade": "30", "cidade": "São Paulo" }
   ]
Enter fullscreen mode Exit fullscreen mode

Conclusão

Com este projeto, você terá um conversor de CSV para JSON funcional e seguro, ideal para integrar em seus sistemas e projetos pessoais. Experimente personalizar o script conforme suas necessidades e aproveite para automatizar tarefas no dia a dia.

Top comments (0)