Exemplo1: JSON Arrays

Script:
var texto1 = '{ "empregados":[' +
'{"firstName":"José","lastName":"Mané" },' +
'{"firstName":"Olivia","lastName":"Palito" },' +
'{"firstName":"Pedro","lastName":"Xavier" } ]}';
var obj1 = JSON.parse(texto1);
document.getElementById("demo1").innerHTML = obj1.empregados[1].firstName + " " + obj1.empregados[1].lastName;

Funcionamento:



Exemplo2: Convertendo JSON em um objeto - function JSON.parse

Script:
var texto2 = '{ "nome":"João", "dtaniv":"2020-05-22", "cidade":"Sertãozinho"}';
var obj = JSON.parse(texto2, function (key, value) {
   if (key == "dtaniv") {
      return new Date(value);
   } else {
      return value;
   }
});
document.getElementById("demo2").innerHTML = obj.nome + ", " + obj.dtaniv;
Funcionamento:

Nota : a data correta seria 22/05/2020 00:00:00 mas ele converteu pelo fuso horario -15Hs



exemplo 3 - buscando o json de um arquivo externo

Script:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
   if (this.readyState == 4 && this.status == 200) {
      var myObj = JSON.parse(this.responseText);
      document.getElementById("demo3").innerHTML = myObj.nome;
   }
};
xmlhttp.open("GET", "036-json_demo.txt", true);
xmlhttp.send();

Funcionamento:

A resposta deve estar acima e deve ser : Severino

este exemplo falha se for aberto o arquivo html localmente (file:///C:/xampp/htdocs/SiteRefTec/JavaScript/036-JsonObject.html) pelo motivo descrito abaixo.

Importante : por regras de segurança uma aplicação local não pode acessar um arquivo local via web browser sem HTTPS.

Access to XMLHttpRequest at 'file:///C:/xampp/htdocs/SiteRefTec/JavaScript/036-json_demo.txt' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

se a requisição for feita num servidor web...funciona perfeitamente (http://localhost/SiteRefTec/JavaScript/036-JsonObject.html).

exemplo 4 - Convertendo um string em data

Script:
var texto4 = '{ "nome":"Eufrasio", "dtAniv":"1986-12-14", "cidade":"Sertãozinho"}';
var obj4 = JSON.parse(texto4);
obj4.dtAniv = new Date(obj4.dtAniv);
document.getElementById("demo4").innerHTML = obj.nome + ", " + obj4.dtAniv;

Funcionamento:



exemplo 5 - Diferenciando tipos de elementos retornados

   No exemplo abaixo o JS devolve strings exceto no campo dtNasc que retorna um objeo data

Retornando o elemento dtNasc que é transformado em data:

Retornando o elemento dtMorte que NÃO é transformado em data:

Script:
var texto5 = '{ "nome":"Policarpo", "dtNasc":"1986-12-14", "dtMorte":"2020-12-14", "cidade":"Caxindro"}';
var obj5 = JSON.parse(texto5, function (key, value) {
   if (key == "dtNasc") {
      return new Date(value);
   } else {
      return value;
   }
});
document.getElementById("demo5").innerHTML = obj5.nome + ", " + obj5.dtNasc;
document.getElementById("demo5_1").innerHTML = obj5.nome + ", " + obj5.dtMorte;
Funcionamento:



Exemplo 6 - JSON.Stringfy()

O método JSON.stringify () converte valores em javascript para uma String JSON.
Esses valores podem ser substituídos especificando um substituto de função, ou incluindo apenas como características específicas, quando o array substitui o especificado.

O array original tinha os seguintes dados :{foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};

No exemplo 6 queremos que apenas os parâmetros NÃO string sejam retornados:

Script:
function replacer(key, value) {
   if (typeof value === "string") {
      return undefined;
   }
   return value;
}
var foo = { foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7 };
document.getElementById("demo6").innerHTML = JSON.stringify(foo, replacer);
    Funcionamento:



Exemplo 7 - JSON.Stringfy() com LocalStore

Script:
var session = {
   'screens': [],
   'state': true
};
session.screens.push({ 'valor': 'TelaA', 'width': 450, 'height': 250 });
session.screens.push({ 'valor': 'TelaB', 'width': 650, 'height': 350 });
session.screens.push({ 'valor': 'TelaC', 'width': 750, 'height': 120 });
session.screens.push({ 'valor': 'TelaD', 'width': 250, 'height': 60 });
session.screens.push({ 'valor': 'TelaE', 'width': 390, 'height': 120 });
session.screens.push({ 'valor': 'TelaF', 'width': 1240, 'height': 650 });

// Converting the JSON string with JSON.stringify()
// then saving with localStorage in the name of session
localStorage.setItem('session', JSON.stringify(session));

// Example of how to transform the String generated through
// JSON.stringify() and saved in localStorage in JSON object again
var restoredSession = JSON.parse(localStorage.getItem('session'));

// Now restoredSession variable contains the object that was saved
// in localStorage
document.getElementById("demo7").innerHTML = restoredSession.screens[0].valor;

Funcionamento: