Bienvenidos a la primera parte de “Introducción a Java y JSON”, la verdad no quiero ahondar en que es Java o que es JSON debido que hay miles de sitios donde pueden buscar definiciones.

El alcance de esta introducción es ilustrar el intercambio de datos entre un servidor de JAVA con un XHTML, algo que podemos hacer de diversas maneras pero en este caso nos toca ver con JSON, en esta primera entrega se limitará a generar JSON desde JAVA con una libreria de Google llamada GSON, en la segunda parte se verán ejemplos mas complicados y usos con Ajax.

Por lo tanto para esta receta necesitamos los siguientes ingredientes:

-Compilador Java en este caso jdk 1.5 (Que viene con eclipse o netbeans)

-Libreria GSON descargala de http://code.google.com/p/google-gson/

Ok, lo primero es crear una clase, seré original y le pondre “Persona”

/**

*

* @author Andrés Pontt

*/

public class Persona {

private String nombre;

private String apellido;

private int edad;

/**

* El constructor es obligatorio si queremos deserializar correctamente el response JSON

*/

public Persona(){

}

public String getNombre() {

return nombre;

}

public void setNombre(String nombre) {

this.nombre = nombre;

}

public String getApellido() {

return apellido;

}

public void setApellido(String apellido) {

this.apellido = apellido;

}

public int getEdad() {

return edad;

}

public void setEdad(int edad) {

this.edad = edad;

}

}

Luego de crear el Java Bean Persona, procedermos a instanciarlo en un main:

Persona persona1 = new Persona();

persona1.setNombre("Andres");

persona1.setApellido("Pontt");

persona1.setEdad(24);

Ahora viene la magia de la libreria GSON, en base a este objeto lo transformaremos en un String JSON

Gson gson = new Gson();

String jsonOutput = gson.toJson(persona1);

Si le hacemos un System.out.println a jsonOutput, esto nos entrega

jsonOutput: {“nombre”:”Andres”,”apellido”:”Pontt”,”edad”:24}

Cabe destacar que la llave ” { ” representa un objeto en notación JSON, lo que quiere decir que si utilizamos este String en un xhtml lo reconocera como un objeto inmediatamente (haciendo un eval).

A continuación, a partir del String generado (jsonOutput) lo utilizaré para setear un objeto, en este caso el Java Bean Persona.

Creamos un nuevo objeto vacio

Persona persona2 = new Persona();

La libreria GSON nos exige crear un objeto de la clase Type para pasarla como argumeno del método fromJson, cuando es un objeto simple me parece que no es necesario pero con objetos mas sofisticados (objetos con listados de objetos dentro) si lo es.

Creando type

Type collectionType = new TypeToken<Persona>(){}.getType();

Usando el método fromJson, le pasamos jsonOutput que es la variable con el String json visto anteriormente.

persona2 = gson.fromJson(jsonOutput, collectionType);

Ahora persona2, es un objeto listo para poder utilizarse, si quieren hacer la prueba utilicen los getters del objeto.

Fin de primera parte (Pronto subire el proyecto completo java)

Segunda parte

2 comments on this post.

  1. Manuel:

    ¿El objeto Type creado (Type collectionType = new TypeToken(){}.getType();
    ) a que libreria corresponde?

  2. admin:

    Es parte de la libreria reflect de Java,

    java.lang.reflect.Type

    Saludos.

Leave a comment