Notação de Objeto JavaScript
| JSON | |
|---|---|
| Extensão | .json
|
| Tipo MIME | application/json
|
| Cara | Troca de dados |
| Extensão de | JavaScript |
| Padrão | RFC 4627 |
| Formato aberto ? | Sim |
| Local na rede Internet | json.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 (
trueefalse); - 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]
- Internet Explorer anterior à versão 8
- Mozilla Firefox antes da versão 3.5
- Safari antes da versão 4
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]
- Mozilla Firefox 3.5 ( 2009 )
- Google Chrome 7 ( 2010 )
- Safári 5 ( 2010 )
- Internet Explorer 10 ( 2012 )
- Safari e Google Chrome para iOS 5.1 ( 2012 )
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
- ^ 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."
- ^ ( 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) .
- ^ a b JSON.parse ( ) vs. eval , em stackoverflow.com . Recuperado em 20 de fevereiro de 2018 .
- ^ O algoritmo de codificação application / json , no W3C .
- ^ Notação de objeto JavaScript JSON , no Yahoo! , 19 de julho de 2005. Recuperado em 16 de abril de 2015 .
- ^ Use XMLHttpRequest , em developer.mozilla.org . Recuperado em 20 de fevereiro de 2018 .
- ^ 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 .
- ^ Posso usar JSON.parse , em caneuse.com . Recuperado em 20 de fevereiro de 2018 .
- ^ ( 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."
- ^ JQuery.getJSON , em jQuery . _ _ Recuperado em 20 de fevereiro de 2018 ."Carregar dados codificados em JSON do servidor usando uma solicitação GET HTTP"
- ^ Posso usar XMLHttpRequest , em caneuse.com . Recuperado em 20 de fevereiro de 2018 .
- ^ Douglas Crockford, JSONRequest , json.org , 17 de abril de 2006. Recuperado em 20 de fevereiro de 2018 .
Itens relacionados
Outros projetos
O Wikimedia Commons contém imagens ou outros arquivos em JSON
Links externos
- ( PT ) Site oficial , em json.org .
- Site italiano de insights sobre Json ,em json.it.
- Formatador JSON , em jsonformatter.org .
- Visualizador JSON , em codebeautify.org .