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

5
我正在寻找一个超级简单的JSON或YAML库(不特别关心哪个),用Java编写,可以在客户端的GWT和其原始Java形式的服务器上使用。
我的目标是:我有我的模型,这些模型在客户端和服务器之间共享,并且这些模型是数据交换的主要来源。我想尽可能简化中间的Web服务,并决定采取RESTful方法。
我的问题是我知道我们的应用程序在未来会大幅增长,手动编写所有getter、setter、序列化、工厂等内容让我感到非常恐惧。因此,为了避免这种情况,我决定实现注释以跟踪模型上的属性。
我不能直接使用GWT自己的序列化或通过反射工作的序列化来序列化所有内容的原因是因为我们需要在序列化过程中进行一定量的逻辑处理。例如:在序列化原始模型时是否将对其他模型的引用序列化,或者只传递ID,以及一般简单的事情等等。然后,我编写了一个注释处理器来预处理我的共享模型并生成一个实现类,其中包含所有getter、setter、序列化、延迟加载等。
长话短说,我需要某种类型的简单的YAML或JSON库,它允许我手动编码和解码,以便我可以通过我的注释处理器生成这些代码。我已经在网络上搜索了一下,但是我找到的每一个库都支持一些反射,虽然这很好,但对于GWT来说几乎没有用处。而且在GWT自己的JSON库的情况下,它使用JSNI进行加速,使其在服务器端无用。
我想到的一个解决方案涉及在模型上编写两组序列化方法,一组用于客户端,一组用于服务器,但我不想这样做。
此外,我对GWT还比较陌生,尽管我已经做了很多Java,但那是在1.2时代,所以有点生疏。因此,如果您认为我完全错误地解决了这个问题,我愿意听取建议。
1个回答

4

你是否了解过itemscript?以下是该网页上的一些描述摘录:

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

您,先生,真是救星。看起来这正是医生开的药方。+1 - KennethJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接