客户端和服务器上的GWT / Java中的JSON或YAML编码

时间:2010-06-12 20:38:01

标签: java json gwt yaml

我正在寻找一个用Java编写的超级简单的JSON或YAML库(并不特别困扰哪一个),并且可以在客户端的GWT和服务器上的原始Java形式中使用。

我要做的是:我有我的模型,它们在客户端和服务器之间共享,这些是数据交换的主要来源。我想在其间设计Web服务尽可能简单,并决定采用RESTful方法。

我的问题是我知道我们的应用程序将来会大幅增长,并且手工编写所有的getter,setter,serialization,factory等等,这让我充满了恐惧。因此,为了避免这种情况,我决定实施注释以跟踪模型上的属性。

我不能直接序列化所有内容,使用GWT自己的,或通过反射工作的原因是因为我们需要在序列化过程中进行一定数量的逻辑。即是否在原始模型的序列化过程中对其他模型的引用进行了序列化,或者是否只传递了ID,以及类似的一般简单事物。然后我编写了一个注释处理器来预处理我的共享模型,并生成一个包含所有getter,setter,serialization,lazy-load等的实现类。

总而言之,我需要一些简单的YAML或JSON库,它允许我手动编码和解码,所以我可以通过我的注释处理器生成这个代码。我看了一下interwebs,但我遇到的每一个都支持一些反射,虽然一切都很精致,但是对于GWT来说它几乎没用。在GWT自己的JSON库的情况下,它使用JSNI来实现速度目的,使其成为无用的服务器端。

我考虑过的一个解决方案是在模型上编写两组序列化方法,一个用于客户端,一个用于服务器,但我宁愿不这样做。

另外,我对GWT很新,虽然我已经做了很多Java,但它在1.2天内又回来了,所以它有点生疏了。所以,如果你认为我完全以错误的方式解决这个问题,我愿意接受建议。

1 个答案:

答案 0 :(得分:4)

你有没有看过itemscript?一些摘录自网页上的描述:

  • 跨平台GWT&标准Java JSON库,具有方便的类,解析器和实用程序。
  • RESTful连接器API,用于通过各种协议检索数据(JSON,文本和小型二进制文件)。
  • 可以在标准Java和GWT Java中使用相同的JSON API。