Documente Academic
Documente Profesional
Documente Cultură
2: JSON
UNIVERSIDAD DE ANTIOQUIA
FACULTAD DE INGENIERA
INGENIERA DE SISTEMAS
2015-1
TABLA DE CONTENIDO
Pg.
INTRODUCCION
OBJETIVO GENERAL
3
4
HERRAMIENTAS EMPLEADAS
WEB BROWSER
....
NETBEANS IDE
..
...
JSON
JDK
MARCO TEORICO
.....
10
PROCEDIMIENTO
..
11
CONCLUSIONES
..
33
BIBLIOGRAFIA
..
34
INTRODUCCION
En este informe conoceremos un poco sobre JSON (JavaScript Object Notation) que es
un formato de intercambio de informacin que est basado en estructuras de pares clavevalor. Es un formato mucho ms liviano que XML y ms indicado y ms eficiente en
determinados proyectos. Puede darse la situacin de que en nuestra aplicacin Java,
necesitemos atender peticiones representadas en JSON, transformarlas a Java, tratar los
datos y devolver una respuesta en JSON; as como veremos cmo convertir objetos Java
en objetos JSON y viceversa de manera muy sencilla gracias a la librera open-source
Gson.
Adems conoceremos un poco acerca del uso de peticiones GET y POST usando el
protocolo RESFULL para consumir servicios WEB como formato estndar.
Tambin emplearemos llamadas con AJAX desde una pgina JSP haca un servlet por
medio de JQuery y l envi y recepcin de las respuestas se harn con JSON. Para
hacer esto emplearemos una librera JSON en el Servlet y luego sern mostradas en la
pgina web de un navegador.
I.
OBJETIVO GENERAL
OBJETIVOS ESPECFICOS
Determinar manejo de herramientas usadas en el desarrollo de lenguaje
XML.
Implementacin de archivos con el lenguaje XML, AJAX y JSON
II.
HERRAMIENTAS EMPLEADAS
Web Browser.
Editor de XML.
Netbeans 8.0.2
JDK.
Versiones
La versin actual de Google Chrome es Google Chrome 4.1 Beta 5 como versin oficial y
Google Chrome 5.0 como versin en desarrollo. Esta ltima ya incorpora el soporte a Mac
y Linux.
Caractersticas
El navegador ejecuta las pestaas en procesos separados del sistema operativo. Lo cual
permite hacer una gestin separada de las pestaas y en el caso de que se cuelgue una
pestaa evita que se cuelgue el navegador.
Permite hacer navegacin de incgnito, mediante la cual no se deja rastro en la mquina
de los sitios por los que se ha navegado (cookies, historial,)
Realiza gestin de pestaas. Podemos abrir diferentes enlaces en diferentes pestaas.
Sin necesidad de abrir una ventana nueva.
Las pestaas estn situadas en la parte superior del navegador. Lo cual permite tener un
rea de navegacin ms grande.
Su barra de navegacin se llama omnibox la cual lleva capacidades de autocompletado
de bsquedas, sugerencia de bsqueda,
Permite crear accesos directos a URL. De esta manera podremos tener un icono que nos
lance una URL como si fuera una aplicacin.
La funcionalidad bsica de Google Chrome se puede mejorar mediante sus extensiones.
Hay extensiones que nos permiten poner accesos a GMail, a Google Reader, a peridicos
como El Mundo o Marca,
Nos permite tener sincronizados nuestros favoritos (bookmarks) independientemente de
dnde tengamos instalado el Google Chrome. Para ello utiliza una cuenta de google. As,
si tenemos Google Chrome instalado en el PC de casa y en el del trabajo, podremos ver
los mismos favoritos en ambos.
XML
XML, siglas en ingls de eXtensible Markup Language ('lenguaje de marcas extensible'),
es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C)
utilizado para almacenar datos en forma legible.
XML proviene de un lenguaje inventado por IBM en los aos setenta, llamado GML
(Generalized Markup Language), que surgi por la necesidad que tena la empresa de
almacenar grandes cantidades de informacin. Este lenguaje gust a la ISO, por lo que en
1986 trabajaron para normalizarlo, creando SGML (Standard Generalized Markup
Language), capaz de adaptarse a un gran abanico de problemas. A partir de l se han
creado otros sistemas para almacenar informacin.
En el ao 1989 Tim Berners Lee cre la web, y junto con ella el lenguaje HTML. Este
lenguaje se defini en el marco de SGML y fue de lejos la aplicacin ms conocida de
este estndar. Los navegadores web sin embargo siempre han puesto pocas exigencias
al cdigo HTML que interpretan y as las pginas web son caticas y no cumplen con la
sintaxis. Estas pginas web dependen fuertemente de una forma especfica de lidiar con
los errores y las ambigedades, lo que hace a las pginas ms frgiles y a los
navegadores ms complejos.
Otra limitacin del HTML es que cada documento pertenece a un vocabulario fijo,
establecido por el DTD. No se pueden combinar elementos de diferentes vocabularios.
Asimismo es imposible para un intrprete (por ejemplo un navegador) analizar el
documento sin tener conocimiento de su gramtica (del DTD). Por ejemplo, el navegador
sabe que antes de una etiqueta <div> debe haberse cerrado cualquier <p> previamente
abierto. Los navegadores resolvieron esto incluyendo lgica ad hoc para el HTML, en vez
de incluir un analizador genrico. Ambas opciones, de todos modos, son muy complejas
para los navegadores.
Se busc entonces definir un subconjunto del SGML que permita:
XML y sus extensiones han sido regularmente criticadas por su nivel de detalle y
complejidad. El mapeo del modelo de rbol bsico de XML hacia los sistemas de tipos de
lenguajes de programacin o bases de datos puede ser difcil, especialmente cuando se
utiliza XML para el intercambio de datos altamente estructurados entre aplicaciones, lo
que no era su objetivo primario de diseo.
Una etiqueta consiste en una marca hecha en el documento, que seala una porcin de
ste como un elemento. Un pedazo de informacin con un sentido claro y definido. Las
etiquetas tienen la forma <nombre>, donde nombre es el nombre del elemento que se
est sealando.
Para editar documentos XML, al igual que para hacerlo con HTML, se puede hacer de dos
formas: editndolos como cualquier otro fichero ASCII, usando, si acaso, un editor
estructurado como el XEmacs, o bien usar un editor especfico para XML, que entiende
las particularidades del lenguaje, lo indenta como est mandado, y te cierra las etiquetas
automticamente.
Para hacer esto hay muchas opciones, tanto en Windows como en Linux, aunque la
mayora es de pago. Por ejemplo, XMLSpy tiene un buen entorno, funciona solo para
Windows, paro es relativamente inestable (al menos las versiones probadas). eXcelon
Stylus permite adems aplicar transformaciones, en un entorno de tres paneles bastante
regular. Tambin es relativamente caro. <oXygen/> es bastante econmico para uso
personal o acadmico, y tiene una versin de prueba de treinta das. Est basado en
Java, y funciona tanto en Windows como en Linux. Te completa las etiquetas, y es
aceptablemente rpido. Se basa tambin en bastantes herramientas libres, tales como
Batik y FOP de Apache. Otra opcin, bastante simple, es XMLShell, que permite tambin
hacer transformaciones XSLT simples.
Los mismos entornos incluyen facilidades para validar el cdigo XML resultante, pero esto
se puede hacer tambin usando analizadores XML, de los cuales hay muchos, de
bastante buena calidad, y la mayor parte de ellos gratuitos. Uno de los ms conocidos y
usados es el Xerces, del cual hay versiones en Java, en Perl y en C++. Es
adecuadamente rpido, y adems incorpora todos los ltimos estndares del W3. Otra
opcin, que adems se puede usar desde Internet, es el XParse de Jeremie, que te
analiza directamente el documento y te lo presenta en forma de rbol.
CMD
Es una abreviatura que significa COMMAND este comando sirve para abrir la consola de
MS-DOS, es la principal herramienta para ejecutar comandos en Windows; desde esta
consola pueden ejecutarse comandos de sistema operativo utilizando la lnea de
comandos en vez de utilizar la interfaz grfica.
NETBEANS
NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el
lenguaje de programacin Java. Existe adems un nmero importante de mdulos para
extenderlo. NetBeans IDE2 es un producto libre y gratuito sin restricciones de uso.
NetBeans es un proyecto de cdigo abierto de gran xito con una gran base de usuarios,
una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo.
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un
conjunto de componentes de software llamados mdulos. Un mdulo es un archivo Java
que contiene clases de java escritas para interactuar con las APIs de NetBeans y un
archivo especial (manifest file) que lo identifica como mdulo. Las aplicaciones
construidas a partir de mdulos pueden ser extendidas agregndole nuevos mdulos.
Debido a que los mdulos pueden ser desarrollados independientemente, las aplicaciones
basadas en la plataforma NetBeans pueden ser extendidas fcilmente por otros
desarrolladores de software.
MARCO TERICO
JSON
JSON (JavaScript Object Notation - Notacin de Objetos de JavaScript) es un formato
liviano de intercambio de datos. Leerlo y escribirlo es simple; que para las mquinas es
simple interpretarlo y generarlo. Est basado en un subconjunto del Lenguaje de
Programacin JavaScript. JSON es un formato de texto que es completamente
independiente del lenguaje pero utiliza de la familia de lenguajes C, incluyendo C, C++,
C#, Java, JavaScript, Perl, Python, y muchos otros. Estas propiedades hacen que JSON
sea un lenguaje ideal para el intercambio de datos.
Estas son estructuras universales; virtualmente todos los lenguajes de programacin las
soportan de una forma u otra. En JSON, se presentan de estas formas:
Un valor puede ser una cadena de caracteres con comillas dobles, o un nmero,
o true o false o null, o un objeto o un arreglo. Estas estructuras pueden anidarse.
Un nmero es similar a un nmero C o Java, excepto que no se usan los formatos octales
y hexadecimales.
GSON
Gson es una biblioteca de Java que se puede utilizar para convertir objetos Java en su
representacin JSON. Tambin se puede utilizar para convertir una cadena JSON a un
objeto Java equivalente. Gson puede trabajar con objetos Java arbitrarias incluyendo
objetos preexistentes que usted no tiene el cdigo.
GSON Objetivos
JSP
JSP es un acrnimo de Java Server Pages, que traduce como Pginas de Servidor Java.
Es una tecnologa orientada a crear pginas web con programacin en Java.
Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web,
de mltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las
pginas JSP estn compuestas de cdigo HTML/XML mezclado con etiquetas especiales
para programar scripts de servidor en sintaxis Java. Por tanto, las JSP se pueden escribir
en el editor HTML/XML habitual.
Motor JSP
El motor de las pginas JSP est basado en los servlets de Java -programas en Java
destinados a ejecutarse en el servidor.
En JSP crean pginas de manera parecida a como se crean en ASP o PHP -otras
dos tecnologas de servidor; Se generan archivos con extensin .jsp que incluyen, dentro
de la estructura de etiquetas HTML, las sentencias Java a ejecutar en el servidor. Antes
de que sean funcionales los archivos, el motor JSP lleva a cabo una fase de traduccin de
esa pgina en un servlet, implementado en un archivo class (Byte codes de Java). Esta
fase de traduccin se lleva a cabo habitualmente cuando se recibe la primera solicitud de
la pgina .jsp, aunque existe la opcin de precompilar en cdigo para evitar ese tiempo de
espera la primera vez que un cliente solicita la pgina.
POJO
Un POJO (acrnimo de Plain Old Java Object) es una sigla utilizada por programadores
Java para enfatizar el uso de clases simples y que no dependen de un framework en
especial. Este acrnimo surge como una reaccin en el mundo Java a los frameworks
cada vez ms complejos, y que requieren un complicado andamiaje que esconde el
plataformas
herramientas.
Servlets tienen acceso a toda la familia de las API de Java, incluyendo la API JDBC para
acceder a bases de datos empresariales. Los Servlets tambin pueden acceder a una
biblioteca de llamadas HTTP especfica y recibir todos los beneficios del lenguaje Java
madura, incluyendo la portabilidad, rendimiento, reutilizacin, y la proteccin de choque.
Servlets hoy son una opcin popular para la construccin de aplicaciones Web
interactivas.Contenedores de servlets de terceros estn disponibles para el servidor Web
Apache, Microsoft IIS, y otros. Contenedores de servlets son normalmente un
componente de los servidores web y de aplicaciones, tales como BEA WebLogic
Application Server, IBM WebSphere, Sun Java System Web Server, Sun Java System
Application Server, y otros.
JQUERY
jQuery es uno de los complementos ms esenciales para el desarrollo web, jQuery no es
un lenguaje, sino una serie de funciones y mtodos de Javascript. Por tanto, Javascript es
el lenguaje y jQuery es una librera que podemos usar opcionalmente. A veces nos
podemos referir a jQuery como framework o incluso como un API de funciones, tiles en
la mayora de proyectos web. Iquery permite simplificar la manera de interactuar con los
documentos HTML, manipular el rbol DOM, manejar eventos, desarrollar animaciones y
agregar interaccin con la tcnica AJAX a pginas web.
III. Procedimiento
1. Conversor de XML a JSON
En este ejercicio se realizar una aplicacin JAVA que permita convertir un
documento en formato XML a JSON. Para esto se emplearan las clases de json
for java, suministradas por el profesor.
Pasos:
1. Con el siguiente documento xml se empleara el conversor.
<?xml version="1.0" encoding="UTF-8"?>
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>
Light Belgian waffles covered with strawberries and whipped cream
</description>
<calories>900</calories>
</food>
</breakfast_menu>
tabla de base de datos por ejemplo. Para este ejemplo vamos a crear un bean
Vendedor y un bean Cliente tal como se muestra a continuacin:
Creamos la clase Vendedor.
Headers
1.
2.
Request URL:http://localhost:8080/AJAXJSON/ActionServlet?
countryname=Colombia (Url solicitada para el servlet)
3.
4.
considera Aceptar. Si deseo ingresar a un sitio donde no est inscrito la respuesta ser
401 que es una respuesta de no autorizado; esto est relacionado con el cdigo de
respuesta http.)
Response Headers
1.
2.
3.
Date: Thu, 16 Apr 2015 19:25:04 GMT (La fecha y hora en que se envi el
mensaje (en " HTTP - fecha " formato como se define en el RFC 7231 de fecha / Formatos
de hora )
4.
Server: GlassFish Server Open Source Edition 4.0 (Nombre del servidor)
5.
1.
Accept: */* (Son los tipos de contenido que pueden ser aceptables para la
respuesta . Ver negociacin de contenido.)
2.
3.
compresin HTTP )
Accept-Language: es-ES,es;q=0.8 (Es el listado de las lenguajes humanos que
6.
Host: localhost:8080 (El nombre de dominio del servidor (por hosting virtual ) , y el
nmero de puerto TCP en el que el servidor est escuchando . El nmero de puerto puede
omitirse si el puerto es el puerto estndar para el servicio solicitado. Obligatorio desde
HTTP / 1.1.)
Referer: http://localhost:8080/AJAXJSON/inicio.jsp
(Esta es la direccin de la pgina web anterior de la que es seguida de un enlace a la
pgina actualmente solicitada. (La palabra referrerha sido mal escrito en el RFC, as
como en la mayora de las implementaciones hasta el punto que se ha convertido en el
uso estndar y se considera la terminologa correcta) )
7.
8.
X-Requested-With: XMLHttpRequest
(utilizado principalmente para identificar las peticiones Ajax . La mayora de los
frameworks de JavaScript enviar este campo con el valor de XMLHttpRequest)
7. Anlisis de Javascript con Google Chrome
El procedimiento de anlisis en Chrome inicia activando la consola JavaScript ubicada en
la opcin Ms herramienta mostrada a continuacin.
Aparecer la consola, ahora realice una peticin AJAX y elija el evento del servlet.
Observe la informacin de las cabeceras. En el separador Preview o en Response puede
observar la respuesta del JSON
2. Cree una clase llamada POJO dentro del package com.udea que permitir
despus a Jersey convertirlo en formato JSON.
Realice
una
anotacin
al
mtodo
getTrackInJSON()
con
Realice un Clean and Build al proyecto y luego realice un Deploy para activarlo en el
servidor de aplicaciones Glassfish.
En la carpeta del proyecto verifique en la seccin RESTFul Web Services que este
cargado correctamente los mtodos.
Ahora proceda a abrir el navegador web y pruebe el mtodo GET asociado al servicio.
Cuando el patrn URI /json/metallica/get es solicitado, los datos de la cancin sern
retornados en formato JSON.
{
"singer" : "Metallica",
"title"
"Enter Sandman"
}
Asegrese de que la URL empleada sea la correcta para el retorno de los datos
adecuadamente.
CONCLUSIONES
XML tiene una filosofa de manejo de informacin que busca la mxima utilidad y
flexibilidad de los datos a travs de su forma estructurada y pura, en forma de
rboles.
GSON es una librera que permite trabajar con objetos JAVA que
representan informacin de un formato JSON, pudiendo generar y/o
obtener datos de dicho formato de una manera clara e intuitiva.
BIBLIOGRAFA