JSON

Javascript Object Notation

O JSON é o formato que constitui objetos/structs no Javascript, embora seja largamente utilizado para comunicação entre sistema devido a sua simplicidade e tamanho reduzido.

Nele descrevemos atributos e valores, como se fosse um dicionário.

{
	"idade": 25,
	"nome": "Augusto",
  "casado": "false",
  "cônjuge": null,
  "filhos": []
}

Os tipos do JSON são: número, string, booleano, objeto e null.

Objeto dentro de objeto

{
	"idade": 35,
	"nome": "Maria",
  "casado": "true",
  **"cônjuge": {
    "idade": 37,
	  "nome": "Carla",
  },**
  "filhos": []
}

Null x Undefined

O null representa um valor enquanto o undefined representa a não existência de um atributo.

const pessoa = {
	"idade": 35,
	"nome": "Maria",
  "casado": "true",
  **"cônjuge": undefined,**
  "filhos": []
}

Interpretação de objetos como dicionário

Por se tratar de ser um JSON os objetos possuem uma chave, o nome do atributo, e um valor.

let pets = ['dog', 'chicken', 'cat', 'dog', 'chicken', 'chicken', 'rabbit'];

let petCounts = pets.reduce(function(obj, pet){
    if (!obj[pet]) {
        obj[pet] = 1;
    } else {
        obj[pet]++;
    }
    return obj;
}, {});

console.log(petCounts); 

/*
Output:
 { 
    dog: 2, 
    chicken: 3, 
    cat: 1, 
    rabbit: 1 
 }
 */