close

Notação de Objeto JavaScript

Ir para a navegação Ir para a pesquisa
JSON
JSON vector logo.svg
Extensão.json
Tipo MIMEapplication/json
CaraTroca de dados
Extensão deJavaScript
PadrãoRFC 4627
Formato aberto ?Sim
Local na rede Internetjson.org

Em ciência da computação , no campo da programação web , JSON (pronuncia-se: ˈdʒeɪ.sɑn), sigla para JavaScript Object Notation , é um formato adequado para troca de dados entre aplicações cliente/servidor . [1]

É baseado no JavaScript Standard ECMA-262 3ª edição (dezembro de 1999), mas é independente dele. Ele é usado em AJAX como uma alternativa ao XML / XSLT . [2]

Características

A simplicidade do JSON tornou rápido o uso, especialmente na programação AJAX . Seu uso através do JavaScript é particularmente simples, de fato o interpretador é capaz de analisar uma string que representa um conteúdo válido através da função JSON.parse(). [3] Isso rapidamente o tornou muito popular devido à disseminação da programação JavaScript no mundo da Web .

Os tipos de dados suportados por este formato são:

  • booleanos ( truee false);
  • inteiros, números de ponto flutuante ;
  • strings entre aspas duplas ( ");
  • arrays (sequências ordenadas de valores, separados por vírgulas e entre colchetes []);
  • arrays associativos (sequências de pares chave-valor separados por vírgulas entre chaves);
  • null.

A maioria das linguagens de programação possui um sistema de tipos muito semelhante ao definido pelo JSON para o qual nasceram muitos projetos que permitem o uso do JSON com outras linguagens como, por exemplo: ActionScript , C , C# , Adobe ColdFusion , Common LISP , Delphi , E , Erlang , Java , JavaScript , Lua , ML , Objective Caml , Perl , PHP , Python , REBOL , Ruby e Rust .

Um fluxo JSON deve ter um cabeçalho HTTP Content-Type: application/json. [4]

Um dos primeiros a adotar o JSON é o Yahoo! , desde 2005. [5]

Relação com outras linguagens de marcação

JSON é um formato de intercâmbio de dados e é frequentemente comparado com XML , que é uma linguagem de marcação . Ambos não possuem um sistema de representação de dados binários , portanto, cabe ao programador adotar convenções apropriadas (por exemplo , Base64 ) para converter dados binários em formato textual.

Algumas das limitações do JSON são cobertas pelo YAML .

Formato

O exemplo a seguir representa os dados de uma pessoa hipotética no formato JSON:

{ 
	"name" :  "John" , 
	"sobrenome" :  "Rossi" , 
	"active" :  true , 
	"favoriteNumber" :  42 , 
	"birthday" :  { 
		"day" :  1 , 
		"month" :  1 , 
		"year" :  2000 
	}, 
	"idiomas" :  [  "it" ,  "en"  ] 
}

Usa

Em JavaScript

Aqui está um exemplo simples de uma solicitação AJAX em JavaScript, para uma URL que responde com dados JSON. [6]

var  httpRequest  =  new  XMLHttpRequest ();

// 
httpRequest callback . addEventListener (  'load' ,  function  ()  { 
	// análise da resposta (supostamente no formato JSON) 
	var  data  =  JSON . parse (  this . responseText  );

	// faça algo com os dados do 
	console . log (  data  ); 
}  );

// inicialização e envio 
de httpRequest . open (  'GET' ,  'https://it.wikipedia.org/w/api.php?action=query&prop=info&titles=Pagina+principale&format=json'  ); 
httpRequest . enviar ();

Aplicações Móveis

Para fazer o back-end se comunicar com o aplicativo móvel, é possível enviar os dados através do protocolo HTTP no formato JSON [7] .

Suporte

Em JavaScript

Entre os navegadores sem suporte para JSON.parse()citar algumas versões, principalmente anteriores a 2009 , em ordem alfabética: [8]

Um grande número de bibliotecas facilitou o uso do formato JSON para fazer solicitações Ajax. JQuery e AngularJS são mencionados . [9] [10]

Historicamente tem havido adoção indiscriminada do método ao eval()invés de uma vez JSON.parse()que estes dois métodos são aparentemente intercambiáveis. No entanto, o método eval()não oferece proteção contra entrada arbitrária e pode levar a sérias vulnerabilidades. [3]

O suporte a XMLHttpRequest é citado em ordem cronológica: [11]

Outras metodologias de apoio

Existem outras maneiras obsoletas de obter fluxos JSON , por exemplo, usando o elemento <iframe>ou formulário como <form action="url_to_cgi_script" target="name_of_hidden_iframe">. Essas abordagens foram amplamente utilizadas antes do suporte extensivo a objetos XMLHTTPRequest.

A tag <script> também pode ser usada para obter dados JSON. Isso permite superar algumas limitações que surgem com o uso de XMLHTTPRequest, mas em detrimento da segurança. [12]

Notas

  1. ^ Apresentando JSON , em JSON . _ Recuperado em 16 de abril de 2015 .
    «JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados. É fácil para humanos ler e escrever. É fácil para as máquinas analisar e gerar."
  2. ^ ( EN ) Versão final da Norma ECMA-262 edição 5.1, março de 2011 (Rev. 6) - Ecma 262 ( PDF ), na ECMA International , março de 2011. Recuperado em 16 de abril de 2015 (arquivado do original em 12 de abril de 2015) .
  3. ^ a b JSON.parse ( ) vs. eval , em stackoverflow.com . Recuperado em 20 de fevereiro de 2018 .
  4. ^ O algoritmo de codificação application / json , no W3C .
  5. ^ Notação de objeto JavaScript JSON , no Yahoo! , 19 de julho de 2005. Recuperado em 16 de abril de 2015 .
  6. ^ Use XMLHttpRequest , em developer.mozilla.org . Recuperado em 20 de fevereiro de 2018 .
  7. ^ Como criar aplicativos móveis multiplataforma usando nada mais do que uma marcação JSON , em freeCodeCamp.org , 12 de fevereiro de 2017. Recuperado em 17 de outubro de 2020 .
  8. ^ Posso usar JSON.parse , em caneuse.com . Recuperado em 20 de fevereiro de 2018 .
  9. ^ ( PT ) $http , em AngularJS . Recuperado em 20 de fevereiro de 2018 .
    "O serviço $ http é um serviço principal do AngularJS que facilita a comunicação com os servidores HTTP remotos por meio do objeto XMLHttpRequest do navegador ou via JSONP."
  10. ^ JQuery.getJSON , em jQuery . _ _ Recuperado em 20 de fevereiro de 2018 .
    "Carregar dados codificados em JSON do servidor usando uma solicitação GET HTTP"
  11. ^ Posso usar XMLHttpRequest , em caneuse.com . Recuperado em 20 de fevereiro de 2018 .
  12. ^ Douglas Crockford, JSONRequest , json.org , 17 de abril de 2006. Recuperado em 20 de fevereiro de 2018 .

Itens relacionados

Outros projetos

Links externos