2010-02-06 11 views
18

Actualmente estoy escribiendo una aplicación web en Java usando GWT 2.0 en eclipse. Quería saber si hay una forma de usar Gson library en el código de la aplicación GWT.usando la biblioteca Gson en el código de cliente GWT

y si hay una manera - por favor dígame cómo ...

Gracias!

+0

Esto podría no ser exactamente la solución que está buscando, pero he encontrado que el uso de tipos de superposición de JavaScript para un fácil manejo de objetos JSON es el mejor - para más información ver aquí: http: //googlewebtoolkit.blogspot. com/2008/08/getting-to-really-know-gwt-part-2.html (entonces podría usar Gson en el lado del servidor y JSO en el lado del cliente, no es la solución perfecta, pero es mejor que el análisis "manual" a través del estándar Métodos GWT). –

+1

La cuestión es que escribir el tipo de superposición en mi opinión es la misma cantidad de trabajo que realizar el análisis del objeto JSON de forma manual. Ya tengo la clase escrita (generada desde un wsdl) y estoy tratando de realizar solicitudes HTTP en ese wsdl en formato json y cargo las respuestas a mis objetos. ¿tienes una idea de cuál es la mejor manera de hacer esto? – Rubinsh

Respuesta

15

No es exactamente lo que escribiste pero supongo que lo que querías decir es cómo serializar/deserializar JSON en el código GWT?

En GWT 2.1.1 se puede utilizar GWT AutoBean framework

ver que hay en la parte inferior del artículo que tiene este código mágico ...

String serializeToJson(Person person) 
{ 
    // Retrieve the AutoBean controller 
    AutoBean<Person> bean = AutoBeanUtils.getAutoBean(person); 
    return AutoBeanCodex.encode(bean).getPayload(); 
} 

Person deserializeFromJson(String json) 
{  
    AutoBean<Person> bean = AutoBeanCodex.decode(myFactory, Person.class, json);  
    return bean.as(); 
} 

la serializeToJson() woks bien para mí, incluso con instancias que están persona hereda pero no probamos la deserializeFromJson ...

25

Gson utiliza características de Java que no son compatibles con GWT, como la reflexión. Por lo tanto, no es posible usar Gson en el código del lado del cliente de GWT.

+0

así que solo se supone que debo usar GSON en el lado de back-end (servidor)? – Rubinsh

+3

Eso es correcto. En el lado del cliente, la forma más fácil es convertir json a objetos es usar tipos de superposición. – Lauri

+0

Es una lástima que no tengan una opción para generar las clases de "superposición" de los objetos GSON en el back-end. Esto mejoraría la situación. – GreenKiwi

2

tengo escribir una biblioteca que permite el uso de GWT con Gson, se puede descargar here y disfrutar de ella.

+0

solo envía los datos al servidor para convertirlo a gson – kozla13

+0

Tienes razón, es por eso que estoy a punto de despreciar esto – heroandtn3

3

(no dude en mejorar mi post si se quiere)

actualmente (02/07/2015) No es posible, aunque me gusta mucho Gson y le gustaría tener sólo una solución para el código compartido : - /, pero hay algunas otras bibliotecas disponibles (sólo sé AutoBeans y Gson mí y tenía un vistazo rápido a Piriti):

(algo de apoyo dos o sólo uno de XML y JSON (de) la serialización)

(*) del proyecto GWT sí

Comparaciones:

Cuestiones relacionadas