Neste post mostrarei brevemente o que é um JSON e o que é um objeto literal JavaScript e qual a diferença entre eles.
JSON
JSON é a abreviação de JavaScript Object Notation e é uma maneira de armazenar e comunicar informações de maneira organizada e fácil de acessar. Em resumo, o JSON nos dá uma coleção de dados legíveis por humanos que podemos acessar de uma maneira realmente lógica.
Atualmente o JSON tem sido muito utilizado para facilitar a comunicação e passagem de dados entre sistemas construídos em linguagens de programação diferentes. Em especial, muitas APIs usam o JSON como seu formato de recebimento e retorno de dados
Exemplo JSON
{ "nome":"Paulo", "idade": 34 }
Objeto JavaScript
Um objeto JavaScript é uma representação abstrata de um modelo de dados composto, assim como nas outras linguagens de programação.
Exemplo:
let objeto = { nome:"Paulo", idade: 34 }
Devido a semelhança entre o JSON e o Objeto Literal, quando o JavaScript lê o JSON ele o reconhece com se fosse um objeto literal. Isso facilita a programação e recebimento de dados, mas acaba confundindo alguns iniciantes.
Onde que o JavaScript e o JSON diferem?
Mesmo assim, existem algumas diferenças entre ambos que importante conhecer. Veja abaixo:
Criação de atributos
Como você deve ter notado no exemplo, no JSON é necessário criar as propriedades usando aspas duplas, enquanto no objeto apenas o nome é necessário.
//Obj Literal let objeto = { umaProp: "Lorem Ipsum" } //JSON let objeto2 = { "umaProp": "Lorem Ipsum" }
Uso de aspas
Enquanto o objeto permite o uso de aspas simples ou dupla para expressar strings, o JSON já funciona de maneira mais uniforme e permite apenas o uso de aspas duplas.
// Os seguintes exemplos não são JSONs válidos { 'prop': "propriedade" } { "prop": 'propriedade' }
Importante: Note que se você estiver utilizando o JavaScript, não ocorrerá erro pois ele interpretará seu objeto como sendo literal.
Tipos de Dados:
JSON: O Json pode armazenar os seguintes valores
- String
- Número
- Objeto JSON
- Vetor
- Booleano
- Null
Objeto: Além dos valores acima, o objeto possuí alguns valores que não são válidos no JSON
- Objeto Literal
- Data (no formato Date)
- Função
- Undefined
É isso aí, espero que esta explicação rápida ajude mais alguém. Se você conhece outras diferenças, deixe aqui nos comentários que atualizarei a postagem conforme aparecerem contribuições.