A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.

Apresentações semelhantes


Apresentação em tema: "Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação."— Transcrição da apresentação:

1 Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação

2 JSON (JavaScript Object Notation)

3 O que é JSON JSON é um formato para troca de informações Usado por aplicações que fazem uso de Ajax Aspectos mais importantes na troca de dados: Simplicidade Extensabilidade Interoperabilidade Leitura humana

4 O que é JSON Subconjunto da ECMA-262 Third Edition. Independente de linguagem Baseado em texto Formato leve Simples de parsear

5 O que é JSON É uma notação aplicada em JavaScript para que seja possível a definição de objetos (estruturas) complexas Sua forma de aplicação assemelha-se a um objeto abstraído do mundo real o qual trabalhamos em POO Fornece a capacidade de atribuir métodos de execução (funções) que estarão diretamente ligadas ao objeto criado prototype

6 O que é JSON Bastante utilizado para auxiliar a execução de chamadas AJAX onde o retorno obtido da execução no servidor obedece aos padrões de criação de objetos JSON para que os dados retornados possam ser lidos em JavaScript. Desta forma, a programação no servidor gera Strings que serão interpretadas no código JavaScript através da função eval() ao qual dará a origem a um objeto em JavaScript

7 O que NÃO é Não é um formato de documento Não é uma linguagem de marcação Não é um formato de serialização: Não possui estruturas ciclicas ou recorrentes Não possui estruturas invisíveis Não possui funções

8 Histórico 1999 ECMAScript Third Edition (European Computer Manufacturers Association) Linguagem de programação baseada em scripts Base de criação do JavaScript e ActionScript 2001 State Software, Inc JSON.org 2005 Ajax 2006 RFC 4627

9 Linguagens Chinese English French German Italian Japanese Korean

10 Linguagens ActionScript C / C++ C# Cold Fusion Delphi E Erlang Java Lisp Perl Objective-C Objective CAML PHP Python Rebol Ruby Scheme Squeak

11 Como funciona JSON é um subset de JavaScript. Pode ser parseado através de um parser JavaScript Pode representar desde objetos simples até objetos complexos Valores suportados String Number Boolean Objetos Arrays Null

12 Valores Strings Numbers Booleans Objects Arrays null

13 Valores

14 Strings Sequencia de 0 ou mais caracteres Unicode No Um caracter é representado como uma string de tamanho 1 Envolvido por aspas duplas Barra de escape

15 String

16 Numbers Integer Real Scientific No octal or hex No NaN or Infinity Use null instead

17 Number

18 Booleans true false

19 null Um valor que não é nada

20 Object São conjuntos não ordenados de pares formados por chave/valor (key/value) Objetos são envolvidos por { }, separa pares key/value : separa keys e values Keys são strings Values são valores JSON struct, record, hashtable, object

21 Object

22 {"name":"Jack B. Nimble","at large": true,"grade":"A","level":3, "format":{"type":"rect","width":1920, "height":1080,"interlace":false, "framerate":24}}

23 Object { "name": "Jack B. Nimble", "at large": true, "grade": "A", "format": { "type": "rect", "width": 1920, "height": 1080, "interlace": false, "framerate": 24 }

24 Array São sequencias ordenadas de valores São envolvidas por [], separa valores JSON não fala nada sobre indices. Uma implementação pode iniciar em 0 ou 1.

25 Array

26 ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] [ [0, -1, 0], [1, 0, 0], [0, 0, 1] ]

27 Arrays vs Objects Use objetos quando as chaves são strings arbitrarias Use arrays quando as chaves são inteiros sequenciais Não confundir com o termo Array Associativo

28 JSON x XML JSON é muito usado em AJAX. O The X do AJAX vêm de XML { "fullname": "Swati Kumar", "org": "Columbia", } Em XML Swati Kumar Columbia

29 JSON x XML JSON no lado cliente var name = eval('(' + req.responseText + ')').fullname.value; Para acessar um elemento composto eval('(' + req.responseText + ')').xyz.abc.value; Pode-se perceber que qualquer nível de profundidade é acessado facilmente

30 JSON x XML XML no lado cliente var root = req.responseXML; var name = root.getElementsByTagName(fullname); Para acessar um elemento composto root.getElementsByTagName(xyz)[0].firstChild Para acessar níveis mais profundos existe mais overhead Reduzida extensabilidade em XML

31 Aspectos de segurança Same Origin Policy - JavaScript pode acessar o conteúdo de uma página web somente se a página e o JavaScript originam do mesmo domínio JavaScripts maléficos podem ler informações sensíveis de outros sites usando as credenciais do cliente e enviar esses dados de volta ao atacante Embora o JavaScript maléfico não possa manipular diretamente o conteúdo, ele pode visualizar a execução e armazenar os valores retornados Esse problema foi agravado com JSON já que arrays JSON são por si próprias objetos JavaScript e qualquer script maléfico pode ver esses objetos diretamente

32 Onde JSON pode ser usado Devido ao seu formato leve pode ser usado para transferir quantidade média de dados Pode ser renderizado em HTML Aplicações AJAX Usar em aplicações baseadas em browser

33 Forma de uso Devido ao conceito de Orientação a Objetos aplicado ao JavaScript não é incomum que ao JSON sejam atribuídos atributos privados e públicos. Estes atributos terão comportamentos diferenciados dentro do objeto obedecendo às regras de modificadores utilizadas em Orientação a Objetos Atributos privados acessados apenas por códigos executados dentro dos métodos pertencentes ao objeto Atributos públicos estarão disponíveis para acesso externo a quem instancia este objeto

34 Forma de uso Existem duas formas de gerar objetos JSON. 1ª - Trabalhando com construção do objeto a partir de funções as quais acabam por fazer papel de construtor do objeto JavaScript. 2ª - Trabalhando com interpretação de Strings contendo os padrões de notação JSON.

35 Forma de uso Primeira forma Criação de JSON a partir de funções function DefinicaoObjeto() { this.Atributo1 = "Primeiro Atributo"; //atributo público var Atributo2 = "Segundo Atributo"; //atributo privado this.ValorConcatenado = this.Atributo1 + " - " + Atributo2; //atributo publico; } var meuObj = new DefinicaoObjeto(); // momento de criação do JSON

36 Forma de uso Atributo1 this indica que pertencerá ao objeto e não ao contexto local Atributo2 Contexto local não estando acessível a quem instanciar o objeto Criação do objeto JSON Para acessar seus atributos públicos alert(meuObj.Atributo1); alert(meuObj.ValorConcatenado);

37 Forma de uso Segunda forma Criação de JSON a partir de strings Devem seguir alguns padrões de notação para que o Compilador JavaScript consiga interpretá-las e criar uma estrutura complexa, ou seja, criar o objeto A diferença entre criação do JSON a partir de métodos e a criação do JSON a partir de Strings está pura e claramente em sua origem de existência, pois a partir do momento que o objeto foi criado, não existem mais diferenças e sua utilização é igual para ambos os casos

38 Forma de uso var meuObj = eval('({' + "Retorno:{'Atributo1':'Valor1','Atributo2':'Valor2'}" + '})'); alert(meuObj.Retorno.Atributo1); alert(meuObj.Retorno.Atributo2); O método javaScript chamado eval() serve para que o Compliador JavaScript resolva a instrução da String JSON e crie o objeto. A Composição da String é fragmentada em 3 partes. 1ª - Definir o objeto. 2ª - Definir o atributo. 3ª - Definir o valor. Azul = definição do objeto. Indica que Retorno é um objeto complexo Preto = Atributo Laranja = Valor

39 Forma de uso Criação de estrutura complexa através de strings var meuObj = eval('({' + "Retorno:[{'Atributo1':'Valor1','Atributo2':'Valor2'},{'Atributo1':' Valor3', 'Atributo2':'Valor4'}]" + '})'); alert(meuObj.Retorno[0].Atributo1); alert(meuObj.Retorno[1].Atributo2); Para definição de um array usar [ ] Separação de grupos de atributos que se encontram dentro de { } por vírgulas, ficando desta forma: {},{} Acesso através de meuObj.Retorno[0].Atributo1


Carregar ppt "Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação."

Apresentações semelhantes


Anúncios Google