JSON

Origem: Wikipédia, a enciclopédia livre.
Saltar para a navegação Saltar para a pesquisa
.json
JSON vector logo.svg
Extensão do arquivo .json
MIME application/json
Lançamento 2002 (15–16 anos)
Última versão dezembro de 2017; há 11 meses
Variante de JavaScript
Variado para BSON, RSON, GeoJSON, JsonML, Jayrock
Padronização RFC 8259
Página oficial json.org/json-pt.html

Em computação, JSON (pronúncia ['dʒejzən], J-son em inglês), um acrônimo de JavaScript Object Notation, é um formato compacto, de padrão aberto independente, de troca de dados simples e rápida (parsing) entre sistemas, especificado por Douglas Crockford em 2000, que utiliza texto legível a humanos, no formato atributo-valor (natureza auto-descritiva). Isto é, um modelo de transmissão de informações no formato texto, muito usado em web services que usa transferência de estado representacional (REST) e aplicações AJAX, substituindo o uso do XML. Padrão foi especificado em 2000 e, definido em 2013 nos dois padrões concorrentes, RFC 7159 e ECMA-404.

O JSON é um formato de troca de dados entre sistemas independente de linguagem de programação derivado do JavaScript.[1][2] Mas a partir de 2017 muitas linguagens de programação incluiram código para gerar, analisar sintaticamente dados em formato JSON e também converter para objetos da linguagem. O tipo de mídia da Internet oficial (MIME) para o JSON é application/jsone nomes de arquivos JSON usam a extensão .json.

O RFC 7493 define um perfil restrito de JSON, conhecido como I-JSON (abreviação de Internet JSON), que visa superar alguns problemas de interoperabilidade com o JSON. Cada documento I-JSON é um documento JSON válido, mas o contrário as vezes não é válido. Apesar de derivado do Javascript, alguns códigos JSON não são considerados Javascript.[3]

Descrição[editar | editar código-fonte]

A simplicidade de JSON ajudou a popularizar seu uso, especialmente como uma alternativa para XML em AJAX. Uma das vantagens sobre o XML como um formato para intercâmbio de dados, é a facilidade de escrever um analisador JSON, mesmo em JavaScript, simplesmente usando a função eval(). Devido a presença deste recurso de JavaScript em todos os navegadores web atuais.

Na prática, os argumentos de desenvolvimento e desempenho do analisador são raramente revelados, devido ao sistema de segurança no uso do eval() somado a crescente integração de processamento XML nos navegadores web. Por esta razão JSON é tipicamente usado em ambientes onde o tamanho do fluxo de dados entre o cliente e o servidor é extremamente importante, onde a fonte dos dados pode ser explicitamente confiável (favorecendo seu uso por Google, Yahoo, etc., servindo milhões de usuários) e onde a perda dos recursos de processamento XSLT no lado cliente para manipulação de dados ou geração da interface, não é uma consideração.

Enquanto JSON é frequentemente posicionado "em confronto" com XML, não é incomum ver tanto JSON como XML sendo usados na mesma aplicação. Por exemplo, uma aplicação no lado cliente a qual integra dados do Google Maps com dados atmosféricos através de SOAP, requer suporte para ambos formatos de dados.

Existe um crescente suporte para JSON através do uso de pequenos pacotes de terceiros. A lista de linguagens suportadas incluem ActionScript, C/C++, C#, ColdFusion, Java (biblioteca org.json), JavaScript, OCaml, Perl, PHP, ASP 3.0, Python, Rebol, Ruby, Lua, Progress 4GL, Go Lang, Android.

Em dezembro de 2005, com a característica de rápido transmissão de dados, Yahoo! começou a suportar JSON como uma opção para alguns de seus serviços Web,[4] assim como o Google (biblioteca com.google.gson.Gson).[5][6]

JSON versus XML[editar | editar código-fonte]

O JSON pode ser considerado concorrente da XML na área de troca de informações. Vejamos algumas das principais semelhanças e diferenças entre os modelos de marcação das informações:

Semelhanças:

  • Representam informações no formato texto.;
  • Possuem natureza auto-descritiva;
  • 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 API’s específicas.

Diferenças:

  • Não é uma linguagem de marcação. Não possui tags de abertura e de fechamento;
  • Representa as informações de forma mais compacta;
  • Não permite a execução de instruções de processamento, enquanto é possível em XML.
  • É tipicamente destinado para a troca de informações, enquanto XML possui mais aplicações. Por exemplo: existem bancos de dados no formato XML e estruturados em SGBD XML nativo.

Tipos de dados, sintaxe e exemplo[editar | editar código-fonte]

Os tipos de dados básicos do JSON são:

  • Number: um número decimal sinalizado que pode conter uma parte fracional e pode usar a notação E exponencial, mas não pode incluir não-números como NaN.

Exemplo[editar | editar código-fonte]

1 {"Alunos":[ 
2      { "nome": "Henrique", "notas": [ 8, 9, 5 ]  },
3      { "nome": "Chris", "notas": [ 8, 10, 7 ] },
4      { "nome": "Martin", "notas": [ 10, 10, 9 ] } 
5 ]}

Exemplo de menu:

 1 {"menu":{
 2     "id": "file",
 3     "value": "File",
 4     "popup":{
 5        "menuitem": [
 6        {"value": "New", "onclick": "CreateNewDoc()"},
 7        {"value": "Open", "onclick": "OpenDoc()"},
 8        {"value": "Close", "onclick": "CloseDoc()"}
 9       ]
10     }
11 }}

O código acima em JSON representa no padrão XML:

1 <menu id="file" value="File">
2   <popup>
3     <menuitem value="New" onclick="CreateNewDoc()" />
4     <menuitem value="Open" onclick="OpenDoc()" />
5     <menuitem value="Close" onclick="CloseDoc()" />
6   </popup>
7 </menu>

Referências

  1. «ECMA-404 The JSON Data Interchange Standard.». json.org. Consultado em 23 de janeiro de 2015. 
  2. «Network Working Group». ietf.org (em inglês). Consultado em 23 de janeiro de 2015. 
  3. «JSON». Mozilla Developer Network. Consultado em 17 de janeiro de 2018. 
  4. «Yahoo Mobile Developer Conference». developer.yahoo.com. Consultado em 23 de janeiro de 2015. 
  5. «JSON fácil em Java com GSon !». blog.globalcode.com.br. Consultado em 13 de março de 2018. 
  6. «Gson – Converta JSON em um objeto Java de forma simples». www.aquiejava.com. Consultado em 13 de março de 2018. 

Ligações Externas[editar | editar código-fonte]

Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.