Converter objeto JavaScript para JSON

Neste artigo você vai aprender a converter objeto JavaScript para JSON, de uma forma muito simples e rápida!

Converter objeto JavaScript para JSON capa

Fala programador(a), beleza? Bora aprender mais sobre objetos, JSON e também sobre a linguagem JavaScript!

Para realizar a conversão de um objeto ao tipo de dado JSON, vamos precisar de uma função da classe JSON

Que realiza a conversão contrária também

O método para transformar objetos em JSON é o stringify

Veja a aplicação prática dele neste código:

const obj = {
	nome: "Matheus",
  idade: 30
}

const json = JSON.stringify(obj);

console.log(json);
console.log(typeof json); //  "string"

Veja que criamos duas constantes, uma com um objeto e outra convertendo o objeto

A função transforma os dados de objeto para um tipo string, porém esta string é um JSON válido

E você pode utilizar como bem entender

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 45min

E para converter JSON para objetos?

Para converter um JSON para objeto, você precisa utilizar o método parse

Que aceita como argumento um JSON válido, e nos retorna um objeto JS deste JSON

Exemplo:

const obj = JSON.parse(json);

Quer aprender tudo sobre JSON? Se liga neste vídeo:

Conclusão

Neste artigo você aprendeu a como converter objeto JavaScript para JSON e também a conversão de JSON para objeto

  • Para converter um objeto: JSON.stringify
  • Para converter um JSON: JSON.parse

Os dois métodos pertencem a classe JSON, que possue métodos para lidar com este tipo de dado!

Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias!

Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!

Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias

O link acima contém um cupom de desconto para os cursos!

Qual a diferença entre objeto JavaScript e JSON?

Essa dúvida aparece muito e vale a pausa

O objeto JavaScript é uma estrutura viva dentro do seu código, tu acessa com ponto, muda propriedade, guarda função dentro dele

Já o JSON é só TEXTO, um formato de troca de dados

É como a diferença entre a comida no prato e a receita escrita num papel: a receita descreve, mas você não come o papel 🙂

Por isso o typeof json do exemplo acima devolve "string"

Depois que virou JSON, aquilo ali é texto, e é justamente por isso que ele viaja bem numa requisição, num arquivo ou no localStorage

Nem todo dado sobrevive à conversão:

Tome cuidado com isso, porque pega muita gente desprevenida

O JSON é um formato mais simples que o objeto JavaScript, então ele não tem como representar tudo

Função dentro do objeto não existe no JSON

Propriedade com valor undefined também não tem representação lá

Então elas simplesmente somem do resultado, sem erro nenhum, sem aviso nenhum

const obj = {
nome: "Matheus",
idade: 30,
saudacao: function () {
return "oi"
},
apelido: undefined
}

console.log(JSON.stringify(obj))
// {"nome":"Matheus","idade":30}

Se liga: o objeto tinha quatro propriedades e o JSON saiu com duas

Já me ferrei uma vez achando que o dado tinha se perdido no backend, e na real ele nunca chegou a virar JSON 😀

Como deixar o JSON formatado e legível?

O stringify cospe tudo numa linha só, o que é ótimo pra máquina e péssimo pro teu olho

Mas ele aceita mais argumentos

O terceiro serve pra indentação

const obj = {
nome: "Matheus",
idade: 30
}

console.log(JSON.stringify(obj, null, 2))

O null do meio é onde entraria um filtro de propriedades, e o 2 é a quantidade de espaços da indentação

Saída:

{
"nome": "Matheus",
"idade": 30
}

Muito mais fácil de debugar assim, né? 😀

E se o JSON for inválido?

Aqui mora a pegadinha do parse

Ele não é gentil: se o texto não for um JSON válido, ele quebra a execução na hora

Uma vírgula sobrando, uma aspa simples no lugar da dupla, uma resposta vazia da API, qualquer coisa assim já derruba

Por isso, sempre que o JSON vier de fora (usuário, arquivo, requisição), envolve em try/catch

const texto = '{"nome": "Matheus",}'

try {
const obj = JSON.parse(texto)
console.log(obj)
} catch (e) {
console.log("JSON inválido, tratando o erro aqui")
}

Regra simples que eu sigo: JSON que eu mesmo gerei com stringify eu converto direto, JSON que veio de fora eu sempre protejo

Funciona com array de objetos também?

Funciona, e é o caso mais comum do dia a dia

Lista de produtos, lista de usuários, resposta de API, tudo isso é array de objetos

Os mesmos dois métodos dão conta

const usuarios = [
{ nome: "Matheus", idade: 30 },
{ nome: "Ana", idade: 25 }
]

const json = JSON.stringify(usuarios)

const devolta = JSON.parse(json)

Ou seja, tu não precisa percorrer o array na mão

O stringify desce a estrutura inteira sozinho, inclusive objeto dentro de objeto

Leia também

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares