Derivado do JavaScript e especificado no ano 2000, JSON é um acrônimo de “Javascript Object Notation” ou simplesmente “Notação de objeto JavaScript”. É um modelo para a transmissão de informações no formato de texto entre diferentes linguagens. Em palavras mais simples, é um formato de serialização de dados muito utilizado em web services.
Possui como uma das principais características a sua legibilidade, podendo facilmente ser lido por humanos, sem a necessidade de uma aplicação auxiliar. Podemos listar também como vantagens do JSON:
- Arquivo com tamanho reduzido;
- Suporta objetos;
- Maior velocidade no transporte e execução de dados;
- É utilizado por grandes empresas como Google, Facebook, Twitter, entre outras;
Porque o JSON é importante?
Com o passar do tempo, o modo com que os sistemas são desenvolvidos mudou. Atualmente, é bem comum que determinados dados sejam compartilhados por diversas aplicações. Para este propósito, o uso de web services tem se tornado cada dia mais relevante, pois são com eles que conseguimos criar um serviço para que diversas aplicações clientes consumam o mesmo banco de dados.
Curso Npm - Gerenciador de pacotes para JavaScript
Conhecer o cursoPorém, como garantir que uma aplicação cliente, escrita em JavaScript ou PHP conseguirá trocar informação com uma aplicação escrita em Python ou C#?
É neste ponto que o uso de JSON é essencial, pois utilizando este formato “universal” garantimos que qualquer aplicação cliente que saiba consumir dados em JSON se comuniquem com o web service.
Sendo assim, basicamente, o JSON é uma espécie de linguagem universal que é utilizada para a comunicação entre aplicações, independente de sua linguagem de desenvolvimento.
Sintaxe do JSON
Como já citado anteriormente, a sintaxe do JSON é extremamente simples, já que uma das suas principais características é a sua legibilidade.
Basicamente, um JSON representa um objeto que possui seus atributos, cada atributo possui um determinado valor.
Possui como elementos básicos:
{ }
(chaves) para delimitar um objeto;
[ ]
(colchetes) para delimitar um array;
:
(dois pontos) para separar os atributos de valores;
,
(vírgula) para separar os atributos chave/valor.
Vejamos o exemplo a seguir de uma exemplificação de um objeto (entre chaves { }
):
{ “titulo”: “O que é JSON”, “ano”: 2019, “autor”: “Ana Paula de Andrade”, “postado”: true, “site”: “www.treinaweb.com.br/blog/”, “categoria”: [“tecnologia”, “desenvolvimento back-end”, “desenvolvimento front-end”], “resumo”: null }
Tipos de dados do JSON
Vale ressaltar, como dito no artigo JSON vs Objeto JavaScript – Qual a diferença? O JSON possui particularidades em relação a um Objeto JavaScript.
O JSON possui apenas quatro tipos básicos: string, booleano, nulo ou numérico (podendo ser inteiro ou real) e foi justamente o que representamos em título, ano, autor, postado (que é o status do artigo) e endereço do nosso site/blog.
Nota-se que para representar valores do tipo “strings” os mesmos devem ser inseridos entre aspas (duplas ou simples) o que não é necessário para os demais tipos.
Já em categoria, inserimos um array de strings utilizando colchetes [ ]
, como citamos acima.
E, por fim, o valor nulo inserido em “resumo”, representando que o mesmo não contém dado algum a ser exibido.
Ou seja, para simplificar, podemos concluir que seus tipos básicos de dados são eles:
- string: Separados por aspas duplas ou simples. Ex: “TreinaWeb” ou ‘TreinaWeb’;
- numérico: Sem o uso das aspas, podendo ser inteiro ou real. Ex: inteiro (2019) ou real (2.009);
- booleano: tipo lógico normal, podendo ser true ou false;
- nulo: valor nulo. Ex: “resumo”: null.
Podemos concluir que…
Como dito anteriormente, com o grande uso dos web services e as diferentes linguagens de programação existentes, a criação de uma língua universal para a troca de informações entre aplicações tornou-se essencial. Com o JSON essa comunicação se torna mais facilitada e “de quebra” independente de linguagem de desenvolvimento. Aconselho a leitura de nosso artigo JSON vs XML para ter uma comparação com outros modelos de transferencia de informação.