Fala ai Gabrielle, tudo bem?
Usando um ambiente Node, ao importarmos um JSON usando o require()
o proprio Node já faz a conversão de JSON para um Objeto JavaScript, logo, não é necessário utilizar o método JSON.parse()
.
Mas em outros casos acaba sendo necessário utilizar o JSON.parse()
para converter.
Um exemplo simples da utilização do JSON.parse()
é para Comunicação entre sistemas. Normalmente, quando transferimos ou recebemos algum dado para outra aplicação através do HTTP, por exemplo, não podemos enviar o JSON diretamente. Para resolver isso, o JSON é transformado em string
e enviado no corpo da requisição. Nesse caso, precisaríamos usar um JSON.parse
para converter os dados da requisição para Objeto Javascript.
Vamos a um exemplo no código para facilitar as coisas. Usando o Node, vamos fazer uma requisição GET para a API da viacep.com.br
. Ela é uma API simples, passamos um CEP na URL e ele retorna as informações do CEP. Vamos usar o módulo https
do Node para isso.
const https = require('https');
// Fazendo uma solicitação HTTP para a API do Via CEP
https.get('https://viacep.com.br/ws/01001000/json/', (res) => {
// Essa função só executa quando receber algum dado da resposta
res.on('data', (data) => {
// Esse parametro data recebe o corpo da resposta da API, mas em string
const cep = JSON.parse(data);
console.log('Informações do CEP:', cep);
});
}).on('error', (error) => {
console.error('Erro ao fazer a solicitação HTTP:', error.message);
});
No exemplo acima, fazemos uma requisição simples e nela recebemos uma resposta em JSON. Porém, como está sendo passada por HTTP ela vem em formato de string
, então usamos o JSON.parse()
para converter em Objeto JavaScript.
O resultado do código no console vai ser:
Informações do CEP: {
cep: '01001-000',
logradouro: 'Praça da Sé',
complemento: 'lado ímpar',
bairro: 'Sé',
localidade: 'São Paulo',
uf: 'SP',
ibge: '3550308',
gia: '1004',
ddd: '11',
siafi: '7107'
}
Espero que tenha ajudado. Qualquer dúvida é só responder aqui no fórum.