我目前正在使用 Eclipse 中的 GWT 2.0 在 Java 中编写一个 Web 应用程序。我想知道是否有办法在 GWT 应用程序的客户端代码中使用Gson 库。
如果有办法 - 请告诉我如何......
谢谢!
Gson 使用 GWT 中不支持的 Java 功能,例如反射。因此不可能在 GWT 客户端代码中使用 Gson。
不完全是你写的,但我猜你的意思是如何在 GWT 代码中序列化/反序列化 JSON?
在 GWT 2.1.1 中,您可以使用GWT AutoBean 框架
在文章的底部看到它有这个神奇的代码......
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();
}
即使使用继承 Person 的实例,serializeToJson() 对我来说也很好,但我没有尝试 deserializeFromJson ......
(如果您愿意,请随时增强我的帖子)
目前(2015-02-07)虽然我非常喜欢 Gson 并且希望只有一个共享代码解决方案是不可能的 :-/ ,但是还有一些其他库可用(我自己只知道 AutoBeans 和 Gson 并且有快速浏览一下 Piriti):
(有些支持 XML 和 JSON(反)序列化中的一种或两种)
(*) 来自 GWT 项目本身
比较:
在我们的 GWT 项目中,我们使用piriti: http ://code.google.com/p/piriti/
奇迹般有效 :-)
我编写了一个库,允许将 GWT 与 Gson 一起使用,您可以在此处下载并享受它。