Processamento de JSON em Node.js: guia completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Processamento JSON em Node.js: guia completo



JSON (JavaScript Object Notation) é um formato leve de troca de dados, baseado na sintaxe de objetos JavaScript. No ambiente Node.js, trabalhar com JSON é uma tarefa cotidiana: desde arquivos de configuração até requisições de API. Neste artigo, vamos detalhar todos os aspectos do processamento JSON, incluindo parsing, serialização, validação e trabalho com arquivos grandes.



Métodos básicos: JSON.parse() e JSON.stringify()



Dois métodos principais para trabalhar com JSON estão embutidos diretamente no JavaScript. Eles estão disponíveis globalmente e não requerem instalação de bibliotecas adicionais.



JSON.parse() — conversão de string em objeto



O método JSON.parse() recebe uma string JSON e retorna o objeto JavaScript correspondente. Se a string contiver JSON inválido, uma exceção SyntaxError será lançada.



const jsonString = '{"name": "Анна", "age": 28, "isStudent": false}';const user = JSON.parse(jsonString);console.log(user.name); // "Анна"console.log(user.age);  // 28


Como segundo parâmetro opcional, pode-se passar uma função reviver, que permite modificar os valores durante o parsing:



const json = '{"year": "2024", "price": "1500.50"}';const data = JSON.parse(json, (key, value) => {  if (key === 'price') return parseFloat(value);  if (key === 'year') return parseInt(value);  return value;});console.log(typeof data.price); // "number"


JSON.stringify() — conversão de objeto em string



O método JSON.stringify() faz o oposto: transforma um objeto ou valor em uma string JSON. Ele aceita até três argumentos: o valor, uma função substituidora ou array de chaves, e a quantidade de espaços para formatação.



const user = {  name: "Иван",  age: 32,  skills: ["JS", "Node", "Python"]};

// Sem formataçãoconsole.log(JSON.stringify(user));// {"name":"Иван","age":32,"skills":["JS","Node","Python"]}

// Com formatação (2 espaços)console.log(JSON.stringify(user, null, 2));/*{ "name": "Иван", "age": 32, "skills": [ "JS", "Node", "Python" ]}*/


O segundo argumento pode ser um array de chaves para filtragem:



console.log(JSON.stringify(user, ['name', 'age']));// {"name":"Иван","age":32}


Trabalhando com arquivos JSON em Node.js



Em Node.js, é frequente a necessidade de ler e escrever arquivos JSON. Para isso, utilizam-se os módulos fs (file system).



Leitura de arquivo JSON



const fs = require('fs');

// Leitura síncronatry { const data = fs.readFileSync('config.json', 'utf8'); const config = JSON.parse(data); console.log(config.port);} catch (err) { console.error('Erro ao ler arquivo:', err.message);}

// Leitura assíncronafs.readFile('config.json', 'utf8', (err, data) => { if (err) { console.error('Erro:', err); return; } const config = JSON.parse(data); console.log(config.port);});


Escrita de arquivo JSON



const fs = require('fs');

const settings = { theme: 'dark', language: 'ru', fontSize: 14};

// Escrita síncronafs.writeFileSync('settings.json', JSON.stringify(settings, null, 2));

// Escrita assíncronafs.writeFile('settings.json', JSON.stringify(settings, null, 2), (err) => { if (err) console.error('Erro ao escrever:', err); else console.log('Arquivo salvo');});


Validação JSON



Antes de usar os dados, é sempre bom verificar sua validade. A maneira mais simples é envolver JSON.parse() em um try-catch. Para validação mais complexa da estrutura, podem-se usar bibliotecas.



Verificação com try-catch



function safeJsonParse(str) {  try {    return { data: JSON.parse(str), error: null };  } catch (e) {    return { data: null, error: e.message };  }}

Recommendations