Server-side serialization is actually very easy thanks to the google-gson library. It's literally a one-liner:
String json =new Gson().toJson(myObject);
On the client side things are a little bit more complicated. Gson (or any other library with features which are not supported on a GWT client such as reflection, dynamic class-loading, multithreading... ) cannot be used.
One possible alternative is to use autobeans
To deserialize a Person class
class Person { private String name; public String getName(); public void setName(String s); }
1. define an interface for the class to deserialize
interface IPerson { public String getName(); public void setName(String s); ]
2. Mark the class to deserialize as implementing the above interface
class Person implements IPerson {...}
3. Define the interface extending AutoBeanFactory
interface Beanery extends AutoBeanFactory{ AutoBean <IPerson> createBean(); }
4. Instantiate the bean factory and deserialize
Beanery beanFactory = GWT.create(Beanery.class); IPerson person = AutoBeanCodex.decode(beanFactory, IPerson.class, json).as();