Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

unidades:10_servidor:02_json [2014/08/30 16:19]
admin [Encapsular Jackson]
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 51: Línea 68:
  
 </​uml>​ </​uml>​
 +
 +<note tip>
 +Por supuesto , este interfaz es muy sencillo , actualmente Java EE 7 ya dispone de [[https://​json-processing-spec.java.net/​|Java API for JSON Processing (JSON-P)]]
 +</​note>​
  
 El código Java es el siguiente: El código Java es el siguiente:
Línea 61: 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 110: Línea 145:
 } }
 </​sxh>​ </​sxh>​
 +===== 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''​.
  
-===== Instalacion ===== +<sxh java> 
-Para usar Jackson es necesario descargar los jars de las siguientes páginas: +public class Main {
-  * [[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]] 
  
 +    public static void main(String[] args) {
 +        JsonTransformer jsonTransformer=new JsonTransformerImplJackson();​
 +        ​
 +        Usuario usuario=new Usuario("​Alberto Tortosa","​alberto_tortosa@gmail.com",​91);​
 +        ​
 +        String jsonUsuario=jsonTransformer.toJson(usuario);​
 +        ​
 +        System.out.println(jsonUsuario);​
 +        ​
 +        ​
 +        Usuario newUsuario=(Usuario) jsonTransformer.fromJson(jsonUsuario,​ Usuario.class);​
 +          ​
 +        System.out.println("​Nombre:"​+newUsuario.getNombre());​
 +        System.out.println("​E-Mail:"​+newUsuario.getEmail());​
 +        System.out.println("​Edad:"​+newUsuario.getEdad());​
  
-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.+
 +</​sxh>​ 
 + 
 +El resultado por pantalla es
 +  ​{"​nombre":"​Alberto Tortosa","​email":"​alberto_tortosa@gmail.com","​edad":​91} 
 +  ​Nombre:​Alberto Tortosa 
 +  ​E-Mail:​alberto_tortosa@gmail.com 
 +  Edad:91
  
 +<​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]]
unidades/10_servidor/02_json.1409408382.txt.gz · Última modificación: 2014/08/30 16:19 por admin
Ir hasta arriba
CC Attribution-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0