JSON

Conheça o formato de dados preferido da web

Por muito tempo o XML dominou a web quando o assunto era serialização de dados. Aos poucos, outras linguagens foram se popularizando e conquistando desenvolvedores por conta das fraquezas desse padrão recomendado pela W3C.

Enquanto isso, poderosas redes sociais, por exemplo o Twitter e Yahoo, foram adotando linguagens como o JSON ao fornecer dados através de suas APIs, e com isso, tomando grandes proporções no mercado.

Neste artigo, vamos conhecer e entender um pouco sobre o que é JSON.

O que é JSON?

JSON

JSON é o acrônimo para “JavaScript Object Notation”. Originalmente o JSON foi concebido para se trabalhar com javascript, mas, não é necessariamente obrigatório o uso de javascript para seu uso, dado que, atualmente, é possível utilizar JSON com mais de 20 linguagens de programação diferentes.

JSON é um formato leve para intercâmbio de dados computacionais. É um subconjunto da notação de objeto de JavaScript, usa convenções semelhantes das linguagens C e familiares, incluindo C++, C#, Java, JavaScript, Perl, Python e muitas outras. Estas propriedades fazem com que JSON seja um formato ideal de troca de dados.

JSON está constituído em duas estruturas:
Uma coleção de pares nome/valor. Em várias linguagens, isto é caracterizado como um object, record, struct, dicionário, hash table, keyed list, ou arrays associativas.
Uma lista ordenada de valores. Na maioria das linguagens, isto é caracterizado como uma array, vetor, lista ou sequência.
Em JSON, os dados são apresentados desta forma:

OBJETO:

Object — JSON

Um objeto é um conjunto desordenado de pares nome/valor. Um objeto começa com { (chave de abertura) e termina com } (chave de fechamento). Cada nome é seguido por : (dois pontos) e os pares nome/valor são seguidos por , (vírgula).

ARRAY:

Array — JSON

Uma array é uma coleção de valores ordenados. O array começa com [ (colchete de abertura) e termina com ] (colchete de fechamento). Os valores são separados por , (vírgula).

VALOR:

Value — JSON

Um valor (value, na imagem acima) pode ser uma cadeia de caracteres (string), um número, true, false, null, um objeto ou uma array. Estas estruturas podem estar aninhadas.

STRING:

String — JSON

Uma string é uma coleção de nenhum ou mais caracteres Unicode, envolvido entre aspas duplas usando barras invertidas como caractere de escape. Um caractere está representando como um simples caractere de string. Uma cadeia de caracteres é parecida com uma cadeia de caracteres em C ou Java.

NÚMERO:

Number — JSON

Um número é similar a um número em C ou Java, exceto quando não se usa os números em base octal ou hexadecimais.

Estas são estruturas de dados universais. Virtualmente todas as linguagens de programação modernas as suportam, de uma forma ou de outra. É aceitável que um formato de troca de dados que seja independente de linguagem de programação se baseie nestas estruturas.

JSON vs XML

Podemos entender o JSON como uma espécie de “concorrente” da XML na área de troca de informações. Existem algumas semelhanças e diferenças entre esses dois modelos bastante utilizados para a representação de informações.

Semelhanças:

  • Os dois modelos representam informações no formato texto.
  • Ambos possuem natureza auto descritiva (ou seja, basta “bater o olho” em um arquivo JSON ou em um arquivo XML para entender o seu significado).
  • Ambos são capazes de representar informação complexa, difícil de representar no formato tabular. Alguns exemplos: objetos compostos (objetos dentro de objetos), relações de hierarquia, atributos multivalorados, arrays, dados ausentes, etc.
  • Ambos podem ser utilizados para transportar informações em aplicações AJAX.
  • Ambos podem ser considerados padrões para representação de dados. XML é um padrão W3C, enquanto JSON foi formalizado na RFC 4627.
  • Ambos são independentes de linguagem. Dados representados em XML e JSON podem ser acessados por qualquer linguagem de programação, através de APIs específicas.

Diferenças:

  • JSON não é uma linguagem de marcação. Não possui tag de abertura e muito menos de fechamento.
  • JSON representa as informações de forma mais compacta.
  • JSON não permite a execução de instruções de processamento, algo possível em XML.
  • JSON é tipicamente destinado para a troca de informações, enquanto XML possui mais aplicações. Por exemplo: nos dias atuais existem bancos de dados inteiros armazenados em XML e estruturados em SGBDs XML nativo.

Muitos dizem que o formato de dados JSON é muito superior ao formato de dados em XML principalmente quando se trata de JavaScript e aplicativos assíncronos. Poucos conhecem JSON, diferentemente do XML, que é um padrão reconhecido e bastante disseminado, no entanto XML é grande e por vezes difícil de lidar, mesmo assim, o XML pode manipular praticamente qualquer coisa e diversos tipos de dados. Quando se fala em velocidade o JSON é mais rápido do que XML, sendo que, o XML também é rápido e continua tendo suas vantagens, ou seja, um não anula o outro, mas JSON é estatisticamente mais rápido.

Outro ponto bastante discutido é que o JSON é fácil de trabalhar e manipular bastando conhecer matrizes, por outro lado XML possui uma sintaxe maior e bem definida podendo ser transformada para XSLT e manipulada em Web Services.

Apesar das diversas opções do XML, o JSON se preocupa basicamente em passar informações de uma página web para um servidor e, em seguida, fazer a trajetória inversa sem precisar de muito esforço, ferramentas extras ou percorrer uma árvore DOM. Portanto, para trabalharmos diretamente em JavaScript de maneira leve e fácil utiliza-se o JSON.

A ideia utilizada pelo JSON para representar informações é bem simples: para cada valor representado, atribui-se um nome (ou rótulo) que descreve o seu significado. Esta sintaxe é derivada da forma utilizada pelo JavaScript para representar informações.

Quanto mais simples melhor

Tentar suprir as necessidades resolvidas pelo XML, inclusive, é um dos grandes dilemas a respeito do JSON. O objetivo da notação é entregar uma solução simples de ser lida, leve e rápida. Preencher as lacunas deixadas pelo XML, seguindo a filosofia do keep it simple são pontos fortes do JSON. Isso influencia diretamente os próprios aspectos já citados em que ela leva vantagem, como legibilidade e performance.

Ambos os lados alegam que suas partes são mais fáceis de entender, e eles não estão errados. No caso de um número baixo de dados, o JSON e seu pareamento chave-valor torna claro o objeto a ser tratado, porém, quando começamos a perceber um grande volume de valores complexos, a estrutura em árvore do XML, embora cheia de palavras e repetições, torna as coisas menos difíceis de entender, em comparação com a infinidade de chaves e parênteses que o JSON precisaria ao denotar a mesma situação.

JSON não está sozinho!

Se a ideia é criar aplicações leves, rápidas, sem muitas exigências (como é geralmente o caso na web) e, principalmente, o JavaScript faz parte do dia a dia, o JSON deve facilitar muito seu trabalho.

É importante ressaltar: não é porque o JSON virou tendência que ele é sempre a melhor solução. Um software que funciona muito bem com requisições SOAP (Simple Object Access Protocol), por exemplo, mesmo que comece a ser considerado “antiquado”, ainda exige o XML e pode trazer muita dor de cabeça na sua tentativa de mudar as coisas.

Assim, depois de analisar os prós e contras de cada um, é a finalidade do projeto em questão que vai dizer qual é melhor. Se a ideia é criar aplicações leves, rápidas, sem muitas exigências (como é geralmente o caso na web) e, principalmente, o JavaScript faz parte do dia a dia, o JSON deve facilitar muito seu trabalho. Além disso, com o aumento no número de web designers aprendendo a linguagem para fazer mágicas em seus trabalhos, JSON acaba mais aceito por ter inicialmente melhor legibilidade.

Por outro lado, se o sistema exige uma maior complexidade de dados, com direito a uma padronização madura na validação dos mesmos e transformações frequentes, XML pode ser a melhor pedida. Se eles precisam de uma categorização, identificação ou classificação, os metadados são os mais recomendados, sem dúvidas.

Considerações Finais

O JSON possui características que o permitem destacar-se do formato XML. É possível ver atualmente aplicações que usam os dois formatos, nos entanto nota-se que o JSON está a crescer e que as linguagem de programação cada vez mais disponibilizam suporte para este formato.

Uma das principais funcionalidades do JSON é o intercâmbio de dados entre aplicativos e linguagens diferentes. Sua sintaxe simples, sua leveza e objetividade, aliados ao suporte por dezenas de linguagens de programação o tornam uma excelente alternativa quando a necessidade é esta. O fato de milhares de webservices de qualidade usarem JSON deve ser um bom indicativo de que usá-lo é uma boa escolha. Ao se trabalhar com JSON, logo se percebe seu poder e simplicidade, o que agiliza bastante o processo de programação, ao mesmo tempo em que o formato não se torna um empecilho à produtividade, pelo contrário, a aprimora!

Referências

Like what you read? Give Pedro Sales a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.