jueves
mar292007
GWT Jsonizer: mapeo JSON/Java Beans en GWT
jueves, marzo 29, 2007 at 2:37AM
GWT Jsonizer es un API que he desarrollado para Juglar.org, que permite transformar objetos JSON en Java Beans dentro del entorno del Google Web Toolkit. Este API permite intercambio fluido con diferentes tecnologías en el servidor, ya que exísten APIs de JSON para Java, PHP, Python, Ruby, C/C++, etc.. Si bien GWT provee un API estándar de JSON, la misma es muy compleja de manipular, ya que está diseñada para objetos JSON genéricos. En cambio, dada la naturaleza de los Java Beans, es muy sencillo comprender el uso del GWT Jsonizer. Por ejemplo, si tenemos una clase Persona ...
class Persona{
private String nombre;
...
public String getNombre(){...}
public void setNombre(String nombre){...}
private String apellido;
...
public String getApellido(){...}
public void setApellido(String apellido){...}
}
... debemos definir una interface PersonaJsonizer que extienda la interfaz org.juglar.gwt.jsonizer.client.Jsonizer...
interface PersonaJsonizer extends Jsonizer{}
... y luego, simplemente, instanciamos la interface con el metodo create de la clase GWT...
...
// instanciamos el jsonizer
PersonaJsonizer jsonizer = (PersonaJsonizer)GWT.create(PersonaJsonizer.class);
String json = "{'nombre':'Andres', 'apellido':'Testi'}";
// traducimos el string json hacia una clase persona
try{
Persona p = (Persona)JsonizerParser.parse(jsonizer, json);
}catch(JsonizerException e){
Window.alert("Existio un error de conversion!!!");
}
...
El proyecto tiene licencia Apache V2.0. Por ahora no está muy documentado, pero es simple seguir el ejemplo incluido con la distribución. Proximamente, el proyecto estará también disponible en Sourceforge.net
¿Alguien que esté trabajando con GWT esperaba un API como este para trabajar con diferentes tecnologías de servidor?
class Persona{
private String nombre;
...
public String getNombre(){...}
public void setNombre(String nombre){...}
private String apellido;
...
public String getApellido(){...}
public void setApellido(String apellido){...}
}
... debemos definir una interface PersonaJsonizer que extienda la interfaz org.juglar.gwt.jsonizer.client.Jsonizer...
interface PersonaJsonizer extends Jsonizer{}
... y luego, simplemente, instanciamos la interface con el metodo create de la clase GWT...
...
// instanciamos el jsonizer
PersonaJsonizer jsonizer = (PersonaJsonizer)GWT.create(PersonaJsonizer.class);
String json = "{'nombre':'Andres', 'apellido':'Testi'}";
// traducimos el string json hacia una clase persona
try{
Persona p = (Persona)JsonizerParser.parse(jsonizer, json);
}catch(JsonizerException e){
Window.alert("Existio un error de conversion!!!");
}
...
El proyecto tiene licencia Apache V2.0. Por ahora no está muy documentado, pero es simple seguir el ejemplo incluido con la distribución. Proximamente, el proyecto estará también disponible en Sourceforge.net
¿Alguien que esté trabajando con GWT esperaba un API como este para trabajar con diferentes tecnologías de servidor?
in
j2se
j2se 
Reader Comments