JSON em JavaScript: guia completo de parsing e serialização

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

Trabalhando com JSON em JavaScript: parsing e serialização na prática



JSON (JavaScript Object Notation) é um formato leve de troca de dados, amplamente utilizado em aplicações web modernas. Em JavaScript, o trabalho com JSON é integrado ao nível da linguagem, tornando-o uma ferramenta ideal para troca de dados entre cliente e servidor, bem como para armazenamento de configurações. Neste artigo, vamos abordar como fazer parsing e serializar JSON no ambiente Node.js, explorar exemplos práticos e melhores práticas.



O que é JSON e para que serve?

JSON é um formato textual baseado na sintaxe de objetos JavaScript. Ele suporta os seguintes tipos de dados:

  • Strings (entre aspas duplas)
  • Números (inteiros e de ponto flutuante)
  • Valores booleanos (true/false)
  • Arrays
  • Objetos
  • null

JSON é usado em toda parte: desde requisições de API até arquivos de configuração (por exemplo, package.json). No Node.js, JSON é o formato principal para troca de dados entre microsserviços.



Parsing de JSON: transformando string em objeto

Para converter uma string JSON em um objeto JavaScript, utiliza-se o método JSON.parse(). Vejamos um exemplo básico:



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

console.log(user.name); // "Ana"console.log(user.age); // 30console.log(user.isStudent); // false


Importante: A string JSON deve estar estritamente formatada. Todas as chaves e valores de string devem estar entre aspas duplas. Aspas simples ou trailing commas causarão erro.



Tratamento de erros no parsing

Ao trabalhar com dados externos (de arquivos, APIs), há sempre o risco de receber um JSON inválido. Use try...catch:



const fs = require('fs');

try { const data = fs.readFileSync('data.json', 'utf8'); const parsed = JSON.parse(data); console.log('Parseado com sucesso:', parsed);} catch (error) { if (error instanceof SyntaxError) { console.error('Erro de sintaxe JSON:', error.message); } else { console.error('Erro ao ler arquivo:', error.message); }}


Parsing com função reviver

O método JSON.parse() aceita um segundo argumento — uma função que pode transformar os valores. Isso é útil, por exemplo, para converter strings de data em objetos Date:



const json = '{"name": "João", "birthDate": "1990-05-15T00:00:00Z"}';const user = JSON.parse(json, (key, value) => {  if (key === 'birthDate') {    return new Date(value);  }  return value;});

console.log(user.birthDate instanceof Date); // trueconsole.log(user.birthDate.getFullYear()); // 1990


Serialização JSON: transformando objeto em string

O processo inverso — converter um objeto JavaScript em uma string JSON — é feito com JSON.stringify().



const user = {  name: 'Maria',  age: 25,  skills: ['JavaScript', 'Node.js', 'Python'],  isActive: true};

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


Formatação da saída

Para legibilidade, você pode adicionar indentação:



const prettyJson = JSON.stringify(user, null, 2);console.log(prettyJson);/*{  "name": "Maria",  "age": 25,  "skills": [    "JavaScript",    "Node.js",    "Python"  ],  "isActive": true}*/


Filtragem e substituição de valores

O segundo argumento de JSON.stringify() pode ser um array de chaves (para filtragem) ou uma função de substituição:





                
                

Blogs

Book Recommendations