Introducción a JSON JUAN CARLOS CONDE RAMÍREZ WEB-TECHNOLOGIES

Documentos relacionados
Curso librerias Web 2.0. Aplicaciones Web Serv Inf UA JSON

Programa. Conceptos básicos: variables, valores y objetos predefinidos, operadores, etc. etc. Callbacks, eval(), etc.

LENGUAJES DE PROGRAMACIÓN 4 MÓDULOS. 56 Horas

JavaScript como Orientación a Objetos

Este es un arreglo de números enteros, o sea que guarda una serie de variables de tipo INTEGER, todas agrupadas en una sola estructura.

Dropbox. Fuente: (dropbox, 2011)

GENERALIDADES DEL LENGUAJE C

Aprender a desarrollar con JavaScript

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

Tema IV El lenguaje de programación PHP Tipos de Datos

TUTORIAL SOBRE HOJAS DE CALCULO

Algoritmos y programas. Algoritmos y Estructuras de Datos I

ESCUELA DE INFORMÁTICA

AJAX. Desarrollo de Aplicaciones Distribuidas

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

EJERCICIO 26 DE EXCEL

COMBINAR CORRESPONDENCIA

DEFINICIÓN DE ONTOLOGÍAS EN SOFIA2

ARREGLOS EN. Nota: El autor.

FUNDAMENTOS DE INFORMÁTICA

Tipos de Datos de python (1ª parte):

COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B)

LABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I)

LABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I)

Bing (proveedor de busqueda) Bing es una herramienta de búsqueda que nos ayudará a encontrar lo que buscamos de forma rápida y sencilla.

Unidad IV: Programación del lado del cliente

Programación Web Avanzada: AJAX y Google Maps

Programación en Visual Basic Ricardo Rodríguez García

ORGANIZACION DE LA INFORMACION EN LA COMPUTADORA

Javascript parte II: AJAX

Construyendo aplicaciones con Dashcode. Dr. José Martín Molina Espinosa

{ } Listado de elementos del conjunto

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

MANUAL DE PROGRAMACIÓN PARA BASES DE DATOS 1.0 MySQL

Parte III: AJAX y REST

QUÉ ES Y PARA QUÉ SIRVE JAVASCRIPT? EMBEBER JAVASCRIPT EN HTML. ALTERNATIVAS. EJEMPLO SENCILLO. (CU00730B)

Ingeniería Web. Navegadores Web. Fernando Barraza A.

Qué diferencia práctica hay entre una cuenta de correo POP y otra IMAP?

BASES DE DATOS EN LÍNEA DEL CSIC ISOC Economía

PHP: Lenguaje de programación

Dos formas de devolver una colección con un Data Provider

TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013

Guía de Información de Administración de Redes del Centro de Computo SUBMÓDULO 2: ADMINISTRACIÓN DE REDES DE ÁREA LOCAL

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

004. Archivos y directorios

INDICE Programación Introducción Capitulo 21 BASIC Capitulo 22. COBOL Capitulo 23 DELPHI Capitulo 24. FORTRAN Capitulo 25.

img.1 Comenzar a crear nuestro player

Fórmulas de Competición

Aplicaciones web con MVC. Desarrollo de aplicaciones II

La primera vez que selecciona el nombre de usuario el programa pide introducir la nueva clave.

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

JavaScript III. JavaScript, la POO y el DOM

Representación de números en la recta real. Intervalos

Configuración de Filezilla FTP. Sync-Intertainment

Fila: Es un conjunto de varias celdas dispuestas en sentido horizontal.

Manual de turbo pascal

Aplicaciones de Mapas Web (Web Mapping) con Google Maps API

Tema 3, Programación en el cliente con Javascript. Parte I: Introducción a Javascript

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( "\nla temperatura media es %f\n", media );

Sede Electrónica del Catastro, utilidades para Bases Gráficas

Programación. Test Autoevaluación Tema 3

Ejemplo de un Cronómetro. Juan Quemada, DIT, UPM

Columnas

LENGUAJES JÓVENES PROGRAMADORES

Primer ha de saberse que las funciones son la herramienta más útil de. Excel, ya que con ella podemos realizar cálculos. Veamos a continuación

REGISTRO CON HUELLA DIGITAL

UNIDAD 2 IMAGEN DIGITAL

Definición de Memoria

Conversión entre Tipos

COBHTTPD-CGILIB. Librería para creación de Paginas web Dinámicas con COBOL. Manual de Templates. COBHTTPD Manual de Templates

Ficha de Aprendizaje N 13

Tramita tu Sello Digital

XML Bien Formado. <nombre> José </nombre> y también puede ser un elemento el siguiente:

Arreglos. Otra definición seria;

Ubuntu Server HOW TO : UBUNTU SERVER EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar un servidor de ubuntu.

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

Diseñando la primera transacción

ABRIENDO BASES DE DATOS USANDO EL ASISTENTE PARA BASES DE DATOS

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

20483 Programación en C#

Introducción a procedimientos, listados y comando For each

Cómo subir fotos y recortarlas:

FORMACIÓN ESPECIALIZADA EN HERRAMIENTAS Y LENGUAJES DE PROGRAMACIÓN WEB

Curso PHP Módulo 1 R-Luis

DEMOSTRACION DE UNA APLICACIÓN N-CAPASCON JAVA- POSTGRESQL

Esquema de trabajo de SPRING MVC

El lenguaje de programación PHP Tipos de Datos. Semestre: A-2010

ARRAYS ASOCIATIVOS JAVASCRIPT? MAPS? RECORRER PROPIEDADES DE OBJETOS CON FOR IN. EJEMPLOS EJERCICIOS RESUELTOS. (CU01146E)

Semana03[1/17] Funciones. 16 de marzo de Funciones

Microsoft Word 2000 Laboratorio de Informática Facultad de Agronomía y Agroindustrias - Año 2006.

Mysql. <? PhP?> EL php necesita que un servidor web con capacidad php sea instalado y ejecutado para poder ejecutar las páginas php.

BÓVEDA ELECTRÓNICA GUÍA RÁPIDA

Qué es una tabla dinámica? Para qué sirve una tabla dinámica?

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

COLEGIO PABLO DE TARSO IED CONSTRUCCION DE PROYECTOS DE VIDA PRODUCTIVOS DREAMWEAVER UNO- PRÁCTICAS DOC RAUL MONROY PAMPLONA

REPASO ARRAYS MULTIDIMENSIONALES EN JAVA. DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00905C)

TI 89. Cómo sobrevivir en Precálculo

ACADEMIA DDW TEMARIO

Transcripción:

Introducción a JSON JUAN CARLOS CONDE RAMÍREZ WEB-TECHNOLOGIES

Objetivos Conocer el origen, la utilidad y las bases sintácticas que dieron lugar a JSON. Entender las diferencias de notación entre XML y JSON. Distinguir las ventajas estructurales que tiene JSON para el intercambio de datos. Analizar una implementación típica usando JSON. FCC-BUAP 2

Definición y utilidad JSON es el acrónimo de JavaScript Object Notation. JSON es un formato alternativo de envío y recepción de datos, para algunos casos, remplaza a XML o se usa para el envío de texto plano. Este formato de datos es más liviano que XML y veremos que hace el código más sencillo ya que utiliza el código JavaScript como modelo de datos. FCC-BUAP 3

Base sintáctica: array literales I Tenemos que recordar un poco como se definen los array literales y objetos literales en JavaScript, ya que serán las estructuras para la transmisión de datos: var usuario = ['juan', 26]; Como vemos los elementos de un array literal se encierran entre corchetes y los valores contenidos van separados por coma. FCC-BUAP 4

Base sintáctica: array literales II Cuando definimos un array literal no le indicamos a cada elemento de que tipo se trata, podemos almacenar cadenas (entre comillas), números, valores lógicos (true, false) y el valor null. Para acceder a los elementos de un array literal lo hacemos por su nombre y entre corchetes indicamos que elementos queremos acceder: alert(usuario[0]); //Imprimimos el primer elemento del array alert(usuario[1]); //Imprimimos el segundo elemento del array FCC-BUAP 5

Base sintáctica: objetos literales I Veamos como se definen los objetos literales en JavaScript: var persona={ 'nombre':'juan', 'clave':'xyz', 'edad':26 }; Los objetos literales se definen por medio de pares "nombre":"valor". Todo objeto literal tiene un nombre, en el ejemplo se llama persona. FCC-BUAP 6

Base sintáctica: objetos literales II Un objeto literal contiene una serie de propiedades con sus respectivos valores. Todas las propiedades de los objetos se encuentran encerradas entre llaves. Cada propiedad y valor se separan por dos puntos. Cada propiedad se separan de las otras propiedades por medio de la coma. Para acceder a las propiedades del objeto literal lo podemos hacer de dos formas: //Imprime el valor de la propiedad nombre del objeto persona alert(persona.nombre); FCC-BUAP 7

Base sintáctica: objetos literales III La segunda forma es indicando la propiedad entre corchetes: alert(persona['nombre']); Luego se pueden combinar objetos literales y array literales: var persona={ 'nombre':'juan', 'edad':22, 'estudios':['primario','secundario'] }; FCC-BUAP 8

Sintaxis JSON I Como podemos ver podemos crear estructuras de datos complejas combinando objetos literales y array literales. Luego para acceder a los distintos elementos tenemos: alert(persona.nombre); alert(persona.estudios[0]); alert(persona.estudios[1]); La sintaxis de JSON difiere levemente de lo visto anteriormente: { 'nombre':'juan', 'edad':22, 'estudios':['primaria','secundaria'] } FCC-BUAP 9

Sintaxis JSON II Como podemos ver en la sintaxis de JSON: no aparecen variables, sino directamente indicamos entre llaves las propiedades y sus valores. También se ha eliminado el punto y coma luego de la llave final. El resto es igual. Ahora veamos la diferencia entre JSON y XML utilizando este ejemplo: FCC-BUAP 10

Ejemplo: XML vs JSON XML: <persona> <nombre>juan</nombre> <edad>22</edad> <estudios> <estudio>primaria</estudio> <estudio>secundaria</estudio> </estudios> </persona> Y como vimos en JSON: { 'nombre':'juan', 'edad':22, 'estudios':['primaria','secundaria'] } FCC-BUAP 11

Ventajas de JSON I Podemos ver que la definición de esta estructura en JSON es mucho más directa. Aunque cuando la estructura a representar es muy compleja, XML sigue siendo la mejor opción. Sin embargo, si tenemos que transmitir estas estructuras por Internet la notación JSON es más liviana. FCC-BUAP 12

Ventajas de JSON II Otra ventaja es como recuperamos los datos en el navegador: Si se trata de un archivo XML llamamos al método requestxml y luego accedemos por medio del DOM En cambio con JSON al llegar el archivo procedemos a generar una variable en JavaScript que recree el objeto literal, esto mediante la función eval: var persona=eval('(' + conexion1.responsetext + ')'); FCC-BUAP 13

Implementación típica I Ya veremos más adelante cómo recuperar los datos del servidor mediante el objeto XMLHttpRequest. Para probar y generar un objeto a partir de una notación JSON consideremos, el siguiente problema: 1. Implementar una página que contenga un botón. 2. Al ser presionado evaluar un string que almacena un objeto literal con notación JSON. 3. El objeto literal debe representar las características de una computadora (procesador, memoria RAM y capacidad de cada disco duro). FCC-BUAP 14

Implementación típica II 4. Mostrar los datos mediante el método alert. 5. Hay que tener bien en cuenta que en este problema no hay nada de AJAX, ya que no nos comunicaremos con el servidor para el envío de datos. NOTA: El archivo pagina1.html y funciones.js se adjuntan por separado. Cuando se presiona el botón se ejecuta la función presionboton. Lo primero que se hace es definir un string que contiene un objeto con notación JSON: var cadena="{ 'microprocesador':'pentium'," + " 'memoria':1024," + " 'discos':[80,250] }"; FCC-BUAP 15

Implementación típica III Enseguida pasamos a evaluar este string: var maquina=eval('(' + cadena + ')'); Ahora si tenemos un objeto JavaScript; esto se logra utilizando la función eval de JavaScript. Es importante que siempre al string que contiene la notación JSON le debamos anteceder el paréntesis de apertura y finalizarlo con el paréntesis de cerrado, esto para que JavaScript no tenga problemas con las llaves de apertura y cierre de la notación JSON. FCC-BUAP 16

Implementación típica VI Una vez que tenemos el objeto en JavaScript, ya procedemos a acceder a sus atributos: alert('microprocesador:'+maquina.microprocesador); alert('memoria ram:'+maquina.memoria); alert('capacidad disco 1:'+maquina.discos[0]); alert('capacidad disco 2:'+maquina.discos[1]); FCC-BUAP 17