JavaScript Object Notation (JSON para abreviar e pronunciado de forma muito semelhante ao nome 'Jason'), é um tipo de formato de compartilhamento de dados. Como evidenciado pelo seu nome, o JSON deriva do JavaScript, mas não é o único proprietário de código que permite a sua utilização. Na verdade, muitas outras linguagens de programação o têm disponível para uso, incluindo Ruby, PHP, Python, e Java.
Quando existe por si só, o arquivo JSON utiliza a .json extensão, mas sendo um formato facilmente transmissível entre um servidor web e um cliente (ou navegador), também pode ser definido como um formato .html formato. Neste caso, pode ser um objeto atribuído a uma variável ou aparecer como uma string JSON dentro de aspas.
O JSON é uma boa alternativa ao XML, pois é mais legível e necessita de formatação mínima. Este tutorial vai ensinar você sobre os dados que podem ser armazenados em arquivos JSON, bem como a sintaxe e estrutura geral do formato.
Estrutura & Sintaxe
Um objeto JSON é um formato de dados que utiliza chaves para representar pares chave-valor. Ao lidar com JSON, você o verá com mais frequência renderizado em arquivos .json, mas no contexto de um programa, ele também pode existir como uma string ou um objeto JSON.
Aqui está um exemplo de como é um objeto JSON:

Embora este seja um exemplo bastante curto, e os objetos JSON possam ser muito mais longos, ele demonstra com precisão como o formato é normalmente configurado com duas chaves em cada extremidade, com pares chave-valor preenchendo o espaço entre elas. A maioria dos dados em JSON está encapsulada em um item JSON.
Existe um dois-pontos delimitando os pares chave-valor (“chave” : “valor”). Cada um desses pares é separado como diferentes membros da lista por uma vírgula. Isso resulta na parte intermediária de uma formatação JSON da seguinte maneira: “chave” : “valor”, “chave” : “valor”, “chave” : “valor”. No exemplo acima, "name" : "Akshay" é o primeiro par chave-valor, por exemplo.
As chaves em cada objeto devem ser exclusivas, podem ser renderizadas como qualquer string válida, envolvidas em aspas duplas (“chave”), e estão sempre posicionadas no lado esquerdo dos dois-pontos. Embora espaços em branco nas strings de chave sejam permitidos (como em “primeiro nome”), isso apresenta uma abordagem mais desafiadora do ponto de vista da programação em termos de acesso. Por esse motivo, a prática de programação comumente adotada é substituir os espaços em branco nas chaves por underscores (“primeiro_nome”).
Os valores em JSON estão posicionados à direita dos dois-pontos. Na sua granularidade mais básica, estes devem ser um de 6 tipos de dados específicos:
- Números
- Objetos
- Arrays
- Strings
- Verdadeiro ou Falso (Booleano)
- Nulo
A próxima seção cobrirá tipos de dados mais complexos do array de objetos JSON, com cada valor passado para o JSON mantendo sua sintaxe. Em outras palavras, as strings continuarão a aparecer entre aspas, enquanto o valor numérico não.
O formato JSON é normalmente listado em um formato multilinha por convenção. No entanto, também pode ser formatado em uma única linha:

Este tipo de formatação é mais comum ao encontrar uma string JSON ou dentro de outro tipo de arquivo. Ao trabalhar com grandes conjuntos de dados, escrever os dois-pontos e os pares chave-valor em linhas individuais torna a lista mais legível para os olhos humanos, já que o JSON carece da ajuda de separação dos espaços em branco:

Embora o objeto JSON se assemelhe ao JavaScript, é importante ter em mente que são formatos distintos. Enquanto o JavaScript permite o uso de funções, o JSON não permite. O que torna o JSON tão valioso é a sua compatibilidade entre linguagens, permitindo que todas as plataformas de programação o interpretem.
Até agora, apenas olhamos para o formato JSON em sua forma mais simples, mas ele pode evoluir hierarquicamente e de maneira mais complexa quando inclui objetos e arrays aninhados. Na próxima seção, veremos o JSON mais avançado.
Utilizando Tipos Complexos de JSON
Além de arrays aninhados, o JSON também pode armazenar objetos aninhados. Esses objetos e arrays serão transferidos como valores para chaves e serão associados a chaves para formar pares chave-valor.
- Formação de Objetos Aninhados
No seguinte users.json imagem do arquivo, há um objeto JSON aninhado transmitido para cada um dos quatro usuários (“akshay”, “sam”, “Andrew”, “James”). Cada usuário possui suas próprias chaves aninhadas (“location” e “username”):

A parte destacada representa um exemplo do primeiro objeto aninhado. Chaves são usadas no exemplo acima para criar um objeto JSON aninhado com um nome de usuário correspondente e detalhes de posição para cada um dos quatro usuários. Ao usar objetos, vírgulas são usadas para distinguir itens com base no atributo específico do usuário.
- Formação de Arrays Aninhados
Arrays Javascript passados como um valor também podem ser aproveitados para aninhar dados dentro do formato JSON. Isso é feito usando [ ] (colchetes) no final dos tipos de array, sendo os arrays listas estruturadas com tipos de dados exclusivos incluídos:

Na seção destacada dos exemplos acima, os 2 sites de perfil de mídia social e os 2 links de sites de Akshay’s são usados, cada um, dentro de um array de informações aninhadas, devido à presença dos colchetes. Ao envolver o aninhamento dessa maneira no JSON, podemos obter mais versatilidade ao trabalhar com conteúdo de dados hierárquico e complexo.
- Comparação com XML
Extensível Marcação Linguagem (XML) fornece um método para armazenar dados que podem ser acessados tanto por máquinas quanto por humanos. Como o JSON, o XML pode ser usado por muitas linguagens de programação. Ao contrário do JSON, o XML envolve significativamente mais texto e, portanto, é mais complexo e demorado para ser montado. Embora uma função padrão possa analisar o JSON, o XML requer um analisador específico para XML. Além disso, o XML não é capaz de fazer uso de arrays. Vamos comparar os mesmos dados formatados em XML versus JSON:

O XML requer significativamente mais texto e ocupa mais espaço. Ele também requer tags de fechamento, enquanto o JSON é muito mais compacto e de arranjo simples. Aqueles familiarizados com o HTML provavelmente notarão a semelhança no uso de tags pelo XML.
Antes de decidir qual formato usar, sempre ajuda avaliar o escopo e as necessidades do projeto. O JSON é menos detalhado, mais enxuto e rápido de usar para aplicativos AJAX e outras situações. O tipo de projeto ajudará a esclarecer as estruturas de dados mais adequadas para uso.
Aprendendo mais sobre o JSON
O JSON é um formato versátil e natural que pode ser implementado em várias linguagens de programação. Você poderá encontrar a lista completa de linguagens suportadas na página “Introducing JSON”. Além disso, informações de análise e compatibilidade podem ser encontradas na “iQuery library.”
No final, é provável que você não escreva JSON puro com muita frequência. Em vez disso, você o obterá de fontes de dados ou traduzirá outros arquivos de dados para JSON. Usando a ferramenta de código aberto Mr. Data Converter, você pode traduzir dados em CSV ou delimitados por tabulação encontrados em programas de planilha para JSON. Com a plataforma utilities-online.info licenciada sob Creative Commons, você pode traduzir XML para JSON e vice-versa. Ao usar software automatizado, verifique novamente os relatórios para eliminar qualquer redundância.
Você também pode usar o JSONLint para verificar seu JSON e o JFiddle para avaliá-lo em um contexto de desenvolvimento web ao converter outros tipos para o formato JSON.
Conclusão
Ganhando maior suporte de API (incluindo a API do Twitter), o JSON é um formato de dados leve que promove a simplicidade na edição, armazenamento e compartilhamento de dados. Como você não gerará seus próprios arquivos .json, mas sim os receberá de outros canais, é mais importante pensar em como usar o JSON em seus programas do que em sua estrutura.
Aqui estão mais recursos do nosso blog que ajudarão você a programar com JavaScript:
- Saiba como protótipos e heranças funcionam no Javascript
- Explore em detalhes como adicionar JavaScript ao HTML.
- Se você estiver criando seu próprio aplicativo web, dê uma olhada em nosso guia sobre como escolher a melhor configuração de servidor.
Boa computação!
Comentários
Nenhum comentário ainda. Seja o primeiro.