Muestra las diferencias entre dos versiones de la página.
unidades:10_servidor:02_json [2014/08/30 16:33] admin |
unidades:10_servidor:02_json [2014/11/26 16:41] (actual) admin [Encapsular Jackson] |
||
---|---|---|---|
Línea 9: | Línea 9: | ||
Así que en este tema solo vamos a ver lo básico de usar Jackson y como encapsularlo tras un interfaz para abstraernos de los detalle y por si en un futuro quisiéramos cambiar de librería. | Así que en este tema solo vamos a ver lo básico de usar Jackson y como encapsularlo tras un interfaz para abstraernos de los detalle y por si en un futuro quisiéramos cambiar de librería. | ||
+ | |||
+ | ===== Instalacion ===== | ||
+ | Para usar Jackson es necesario descargar los jars de las siguientes páginas: | ||
+ | * [[http://repo2.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations]] | ||
+ | * [[http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core]] | ||
+ | * [[http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind]] | ||
+ | |||
+ | Los ejemplos de este curso han sido hecho con la versión 2.4 y los enlaces directos son: | ||
+ | * [[http://repo2.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.4.2/jackson-annotations-2.4.2.jar|jackson-annotations-2.4.2.jar]] | ||
+ | * [[http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.4.2/jackson-core-2.4.2.jar|jackson-core-2.4.2.jar]] | ||
+ | * [[http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.4.2/jackson-databind-2.4.2.jar|jackson-databind-2.4.2.jar]] | ||
+ | |||
+ | |||
+ | Una vez descargados simplemente habrá que : | ||
+ | * Crear una nueva carpeta llamada ''lib'' en la raiz del proyecto | ||
+ | * Copiar los jars a la nueva carpeta ''lib'' | ||
+ | * Añadir los 3 jars al proyecto usando rutas relativas. | ||
===== Uso de Jackson ===== | ===== Uso de Jackson ===== | ||
Línea 65: | Línea 82: | ||
} | } | ||
</sxh> | </sxh> | ||
+ | |||
+ | <note tip> | ||
+ | La forma mas correcta de definir el interfaz ''JsonTransformer'' es usando Generics en el método ''fromJSON'' y de esa forma ahorrarnos el cast ya que el tipo retornado en ''fromJSON'' siempre será el mismo que el de la clase que se le pasa como argumento en "clazz" | ||
+ | |||
+ | <sxh java> | ||
+ | public interface JsonTransformer { | ||
+ | String toJson(Object data); | ||
+ | <T> T fromJSON(String json, Class<T> clazz) | ||
+ | } | ||
+ | </sxh> | ||
+ | |||
+ | Aunque no lo uso en el resto del curso por no liar mas aun el curso. | ||
+ | |||
+ | </note> | ||
Creamos una implementación para este interfaz usando las librerías de Jackson llamado ''JsonTransformerImplJackson''. | Creamos una implementación para este interfaz usando las librerías de Jackson llamado ''JsonTransformerImplJackson''. | ||
Línea 114: | Línea 145: | ||
} | } | ||
</sxh> | </sxh> | ||
- | |||
===== Ejemplo ===== | ===== Ejemplo ===== | ||
Ahora veamos un simple ejemplo que usa transforma un objeto ''Usuario'' a un String JSON y dicho String se vuelve a transformar a un objeto ''Usuario''. | Ahora veamos un simple ejemplo que usa transforma un objeto ''Usuario'' a un String JSON y dicho String se vuelve a transformar a un objeto ''Usuario''. | ||
Línea 149: | Línea 179: | ||
E-Mail:alberto_tortosa@gmail.com | E-Mail:alberto_tortosa@gmail.com | ||
Edad:91 | Edad:91 | ||
- | ===== Instalacion ===== | ||
- | Para usar Jackson es necesario descargar los jars de las siguientes páginas: | ||
- | * [[http://repo2.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations]] | ||
- | * [[http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core]] | ||
- | * [[http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind]] | ||
- | |||
- | Los ejemplos de este curso han sido hecho con la versión 2.4 y los enlaces directos son: | ||
- | * [[http://repo2.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.4.2/jackson-annotations-2.4.2.jar|jackson-annotations-2.4.2.jar]] | ||
- | * [[http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.4.2/jackson-core-2.4.2.jar|jackson-core-2.4.2.jar]] | ||
- | * [[http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.4.2/jackson-databind-2.4.2.jar|jackson-databind-2.4.2.jar]] | ||
- | |||
- | |||
- | Una vez descargados simplemente habrá que : | ||
- | * Crear una nueva carpeta llamada ''lib'' en la raiz del proyecto | ||
- | * Copiar los jars a la nueva carpeta ''lib'' | ||
- | * Añadirlos al proyecto usando rutas relativas. | ||
+ | <note> | ||
+ | Este ejemplo se encuentra en git en [[https://github.com/logongas/cursoangularjs/tree/master/jackson]] | ||
+ | </note> | ||
===== Referencias ===== | ===== Referencias ===== | ||
* [[http://wiki.fasterxml.com/JacksonHome|Jackson]] | * [[http://wiki.fasterxml.com/JacksonHome|Jackson]] |