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

Ken*_*thJ 5 java gwt json 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天内又回来了,所以它有点生疏了.因此,如果您认为我完全以错误的方式解决这个问题,我愿意接受建议.

Chr*_*her 4

您研究过itemscript吗?网页描述中的一些摘录:

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