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

Slides:



Advertisements
Apresentações semelhantes
Introdução Ajax Json XML
Advertisements

Paulo Marques Hernâni Pedroso
JavaScript O JavaScript é uma linguagem de scripting, orientada a objectos e independente de plataformas Criada pela NetScape Código embebido em paginas.
Profa. Rudson apostilas.wikidot.com/hipermidia
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
Software Básico Silvio Fernandes
Rafael Pinto Frederico Corrêa
Tecnologia para Web JavaScript
Linguagens de Programação
GERENCIAMENTO DE REDES
Introdução ao JavaScript
Laboratório de Programação de Computadores I
TÉCNICAS DE PROGRAMAÇÃO II
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Paradigmas de programação
C# Documentando código em XML Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 10/10/2002 Autor: Marden Menezes Costa.
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
Linguagem de Expressão (EL)
JAVASCRIPT ECMA-262 edição 5.1 (junho 2011) (ECMAScript 5 !)
PHP Tipos de dados Constantes.
XML Extended Markup Language
Sistemas Operacionais
JSON Programação de Script.
Programação para estrutura Cliente-Servidor
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Computação e Estatística Servidor de Documentos XML Usando.
Tópicos avançados em internet A
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
Tópicos de Sistemas de Informação A
Tópicos de Sistemas de Informação A
Tópicos avançados em internet A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
1ª Aula de Html Íria Albuquerque.
Programação de SCRIPTS
Técnico em Informática - Senac
Tipos de Dados Paradigmas de Programação
Professor: Márcio Amador
Orientação a Objetos Parte I
Programação Orientada à Objetos
PROGRAMAÇÃO ORIENTADA A OBJETO - JAVA
PrograMação para internet
JSP e Servlets ISEP – LP2 Filipe Costa – /2004.
SISTEMAS DISTRIBUIDOS Aula 4
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Banco de Dados Aplicado ao Desenvolvimento de Software
Unidade 6 – Formulários HTML Prof.: Henrique Santos
Interfaces e classes abstratas. Conceitos de Orientação a Objeto.
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
José Francisco PHP & MySQL. Os slides originais são parte do material de cursos anteriores do curso de PHP, ministrados por Sérgio Clemente.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Nomeação de arquivos – Cap 4.1.1
PHP – Aula01 Ferramentas -Web.
Ruby André Braga Patrícia Lustosa. Yukihiro Matsumoto (“Matz”), 1993 Perl Smalltalk Eiffel Ada Lisp “Natural, not simple” “More powerful than Perl and.
Trabalho de Seminários em Informática
Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
XML Namespaces XML Namespaces provê um método para evitar conflito de nomes de elementos.
Linguagens de Programação
Aula 1 Introdução à Programação WEB I PHP, ASP e JSP
Módulo II Capítulo 1: Orientação a Objetos
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Student Tech Clubs Desenvolvimento WEB Antonio Ladeia Graduando em Tecnologia em Análise e Desenvolvimento de Sistemas Instituto Federal da Bahia Introdução.
Profº Cláudio Barbosa VBScript Introdução  Visual Basic - Linguagem de uso geral da Microsoft.  VBScript (Visual Basic.
Treinamento AJAX Waelson Negreiros Blog:
Prof. Wolley Profa. Érika
VARIÁVEIS Desenvolvido pelo Mestrando Rodrigo Moreira Barreto – VHLab (Virtual Humans Simulation Laboratory – PUCRS) 1 Desenvolvido por: Rodrigo Moreira.
JavaScript Introdução ao JavaScript 1. Objetivos Introdução Sintaxe Básica Arquivo (script) externo Script no HEAD da página Script no BODY da página.
Apresentação TI Alunos: Isadora Bernardo, Lucas Medeiros, Marcela Muniz e Renata Coutinho.
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

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

JSON (JavaScript Object Notation)

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

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

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

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

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

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

Linguagens Chinese English French German Italian Japanese Korean

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

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

Valores Strings Numbers Booleans Objects Arrays null

Valores

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

String

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

Number

Booleans true false

null Um valor que não é nada

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

Object

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

Object { "name": "Jack B. Nimble", "at large": true, "grade": "A", "format": { "type": "rect", "width": 1920, "height": 1080, "interlace": false, "framerate": 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.

Array

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

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

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

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

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

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

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

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

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.

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

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);

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

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

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