Java 将GWT客户端对象序列化为字符串并在服务器上反序列化的方法?
目前,我们的应用程序使用GWT-RPC进行大多数客户机-服务器通信。当我们需要自动生成图像时,就会出现这种情况。我们根据几十个参数生成图像,所以我们要做的是构建大型复杂URL,并通过get请求检索动态构建的图像 如果我们能找到一种在gwt客户机代码中序列化Java对象并在服务器端反序列化它的方法,我们就可以使URL更容易使用。而不是Java 将GWT客户端对象序列化为字符串并在服务器上反序列化的方法?,java,json,gwt,serialization,servlets,Java,Json,Gwt,Serialization,Servlets,目前,我们的应用程序使用GWT-RPC进行大多数客户机-服务器通信。当我们需要自动生成图像时,就会出现这种情况。我们根据几十个参数生成图像,所以我们要做的是构建大型复杂URL,并通过get请求检索动态构建的图像 如果我们能找到一种在gwt客户机代码中序列化Java对象并在服务器端反序列化它的方法,我们就可以使URL更容易使用。而不是 http://host/page?param1=a¶m2=b¶m3=c.... 我们本来可以 http://host/page?o
http://host/page?param1=a¶m2=b¶m3=c....
我们本来可以
http://host/page?object=?JSON/XML/Something Magicical
在服务器上,只需
new MagicDeserializer.(request.getParameter("object"),AwesomeClass.class);
我不在乎中间格式是什么json/xml/我只是希望能够停止跟踪gwt客户端代码以及servlet中的手动编组/解编组参数。使用AutoBean框架。您需要的很简单,就在这里我已经看到使用此库最成功、代码量最少的代码: 除了所有对象类都应该使用的标准toString()之外,我还希望在每个类中使用一个名为toJsonString()的对象。注意,每个类都必须扩展库附带的JsonSerializable:
public String toJsonString()
{
Serializer serializer = (Serializer) GWT.create(Serializer.class);
return serializer.serializeToJson(this).toString();
}
为了将JSON字符串转换回对象,我在同一个类中放置了一个静态方法,该方法将重新创建类本身:
public static ClassName recreateClassViaJson(String json)
{
Serializer serializer = (Serializer) GWT.create(Serializer.class);
return (ClassName) serializer.deSerialize(json, "full.package.name.ClassName");
}
非常简单 不太清楚要反序列化哪些Java对象,或者如何生成原始URL。了解这两个方面会有所帮助。