Trabalho com JSON em JavaScript: parsing e serialização de dados

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

Introdução ao JSON e seu Papel no JavaScript



JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados baseado na sintaxe de objetos JavaScript. Apesar de suas origens, o JSON se tornou um padrão universal para transmitir dados estruturados entre servidor e cliente, além de armazenar configurações e trocar informações em arquiteturas de microsserviços.



No ambiente Node.js, trabalhar com JSON é uma tarefa diária: desde a leitura de arquivos de configuração até o processamento de respostas de APIs REST. Neste artigo, vamos analisar detalhadamente dois métodos-chave — JSON.parse() e JSON.stringify(), além de examinar erros típicos e melhores práticas.



1. Analisando JSON: O Método JSON.parse()



O método JSON.parse() converte uma string formatada em JSON em um objeto JavaScript. Isso é necessário quando você recebe dados de um servidor, de um arquivo ou de uma fonte externa.



Sintaxe Básica



const jsonString = '{"name": "Anna", "age": 30, "isStudent": false}';const user = JSON.parse(jsonString);console.log(user.name); // "Anna"console.log(user.age);  // 30


Uso Avançado: A Função Reviver



O segundo argumento de JSON.parse() pode aceitar uma função reviver, que permite modificar valores durante a análise. Isso é útil para converter strings de data em objetos Date ou para validação de dados.



const jsonData = '{"date": "2024-01-15T10:30:00.000Z", "value": 42}';const parsed = JSON.parse(jsonData, (key, value) => {  if (key === 'date') {    return new Date(value);  }  return value;});console.log(parsed.date instanceof Date); // trueconsole.log(parsed.date.toLocaleDateString()); // "15/01/2024"


Tratamento de Erros de Análise



JSON inválido lançará um SyntaxError. Sempre envolva a chamada JSON.parse() em um bloco try...catch:



function safeParse(jsonString) {  try {    return { data: JSON.parse(jsonString), error: null };  } catch (error) {    console.error('Erro ao analisar JSON:', error.message);    return { data: null, error: error.message };  }}

const result = safeParse('{"name": "Erro"}');console.log(result.data.name); // "Erro"


2. Serialização para JSON: O Método JSON.stringify()



O método JSON.stringify() executa a tarefa inversa — ele converte um objeto JavaScript em uma string JSON. Isso é usado ao enviar dados para um servidor, salvar estado ou registrar logs.



Sintaxe Básica



const user = {  name: 'Ivan',  age: 25,  skills: ['JavaScript', 'Node.js']};

const jsonString = JSON.stringify(user);console.log(jsonString);// {"name":"Ivan","age":25,"skills":["JavaScript","Node.js"]}


Parâmetros de Formatação



O terceiro argumento de JSON.stringify() permite definir a indentação para uma saída legível. Isso é especialmente útil ao escrever em arquivos ou durante a depuração.



const config = {  server: { port: 3000, host: 'localhost' },  database: { host: 'db.example.com', port: 5432 }};

// Saída compactaconsole.log(JSON.stringify(config));

// Saída legível com indentação de 2 espaçosconsole.log(JSON.stringify(config, null, 2));// {// "server": {// "port": 3000,// "host": "localhost"// },// ...// }


Filtrando Propriedades com o Replacer



O segundo argumento é um array ou função que determina quais propriedades incluir na string resultante.



const user = {  id: 1,  name: 'Maria',  email: 'maria@example.com',  password: 'secret123',  role: 'admin'};

// Excluindo dados confidenciaisconst safeUser = JSON.stringify(user, ['id', 'name', 'email', 'role']);console.log(safeUser);// {"id":1,"name":"Maria","email":"maria@exa

Blogs

Book Recommendations