JSON .stringify()
Um uso comum do JSON é trocar dados de/para um servidor web.
Ao enviar dados para um servidor web, os dados devem ser uma string.
Converta um objeto JavaScript em uma string com JSON.stringify()
.
Stringify um objeto JavaScript
Imagine que temos este objeto em JavaScript:
const obj = {name: "John", age: 30, city: "New York"};
Use a função JavaScript JSON.stringify()
para convertê-lo em uma string.
const myJSON = JSON.stringify(obj);
O resultado será uma string seguindo a notação JSON.
myJSON
agora é uma string e está pronta para ser enviada para um servidor:
Exemplo
const obj = {name: "John", age: 30, city: "New York"};
const myJSON =
JSON.stringify(obj);
Você aprenderá como enviar JSON para um servidor nos próximos capítulos.
Stringify uma matriz JavaScript
Também é possível stringify arrays JavaScript:
Imagine que temos este array em JavaScript:
const arr = ["John", "Peter", "Sally", "Jane"];
Use a função JavaScript JSON.stringify()
para convertê-lo em uma string.
const myJSON = JSON.stringify(arr);
O resultado será uma string seguindo a notação JSON.
myJSON
agora é uma string e está pronta para ser enviada para um servidor:
Exemplo
const arr = ["John", "Peter", "Sally", "Jane"];
const myJSON =
JSON.stringify(arr);
Você aprenderá como enviar uma string JSON para um servidor nos próximos capítulos.
Armazenando dados
Ao armazenar dados, os dados devem estar em um determinado formato e, independentemente de onde você escolher armazená-los, o texto é sempre um dos formatos legais.
JSON torna possível armazenar objetos JavaScript como texto.
Exemplo
Armazenando dados no armazenamento local
// Storing data:
const myObj = {name: "John",
age: 31, city: "New York"};
const myJSON =
JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
// Retrieving data:
let text = localStorage.getItem("testJSON");
let obj =
JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;
Exceções
Stringify Datas
Em JSON, objetos de data não são permitidos. A JSON.stringify()
função converterá quaisquer datas em strings.
Exemplo
const obj = {name: "John", today: new Date(), city : "New York"};
const myJSON = JSON.stringify(obj);
Você pode converter a string de volta em um objeto de data no receptor.
Funções de Stringify
Em JSON, as funções não são permitidas como valores de objeto.
A JSON.stringify()
função removerá todas as funções de um objeto JavaScript, tanto a chave quanto o valor:
Exemplo
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
const myJSON = JSON.stringify(obj);
Isso pode ser omitido se você converter suas funções em strings antes de executar a JSON.stringify()
função.
Exemplo
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
obj.age = obj.age.toString();
const myJSON = JSON.stringify(obj);
Se você enviar funções usando JSON, as funções perderão seu escopo e o receptor terá que usar eval() para convertê-las novamente em funções.