Trabalhando com JSON - JavaScript
JSON (JavaScript Object Notation) é um formato leve de armazenamento de dados. Ele descreve a estrutura e organização dos dados em JavaScript. Devido à sua simplicidade, JSON se tornou o formato mais popular para a transferência de dados na web, substituindo o XML, que antes era muito utilizado.
Os objetos JSON são muito semelhantes aos objetos JavaScript, já que o JSON é um subconjunto do JavaScript. Contudo, é importante diferenciá-los: JavaScript é uma linguagem de programação, enquanto JSON é um formato de dados.
Tipos de Dados no JSON
JSON suporta três tipos de dados: valores primitivos, objetos e arrays. Os valores primitivos incluem strings padrão, números, valor null
true
false
Objetos representam um conjunto de dados simples, outros objetos e arrays. Por exemplo, um objeto JSON típico seria:
{
"name": "Tom",
"married": true,
"age": 30
}
Em JavaScript, esse objeto seria representado como:
const user = {
name: "Tom",
married: true,
age: 30
};
Apesar da semelhança, existem diferenças: no JSON, os nomes das propriedades são sempre envoltos em aspas duplas, como strings comuns. Além disso, objetos JSON não podem armazenar funções ou variáveis, ao contrário dos objetos JavaScript.
Objetos Complexos e Arrays no JSON
Objetos JSON podem ser complexos:
{
"name": "Tom",
"married": true,
"age": 30,
"company": {
"name": "Microsoft",
"address": "USA, Redmond"
}
}
Arrays no JSON são semelhantes aos arrays em JavaScript e podem armazenar dados simples ou objetos:
["Tom", true, 30]
Um array de objetos:
[
{
"name": "Tom",
"married": true,
"age": 30
},
{
"name": "Alice",
"married": false,
"age": 23
}
]
Serialização e Desserialização em JSON
Para trabalhar com JSON em JavaScript, utilizamos o objeto JSON, que permite converter um objeto JavaScript para o formato JSON e vice-versa.
Para serializar um objeto JavaScript para JSON, usamos a função JSON.stringify()
// Objeto JavaScript
const user = {
name: "Tom",
married: false,
age: 39
};
// Objeto JSON
const serializedUser = JSON.stringify(user);
console.log(serializedUser); // {"name":"Tom","married":false,"age":39}
Para a operação inversa, desserializar ou parsear um objeto JSON para JavaScript, usamos o método JSON.parse()
const user = {
name: "Tom",
married: false,
age: 39
};
// Serialização
const serializedUser = JSON.stringify(user);
// Desserialização
const tomUser = JSON.parse(serializedUser);
console.log(tomUser.name); // Tom