POJO编组/反编组:JAX-RS JSON与GWT客户端JSON匹配



我正在使用Resteasy和GWT。由于某些原因,正如许多其他人有类似的动机一样,我没有将GWT-RPC用于我正在开发的软件的某些功能。

我需要在GWT客户机和服务器之间传递pojo,方法是将pojo编组/解组到JSON中。

好,说起来容易做起来难,因为我需要两边的POJO-JSON转换器来匹配。

Q1。JSON中有标准的POJO表示法吗?是否有ietf RFC或ISO或ECMA指定JSON中POJO符号的格式?或者是一种自由主义的无政府状态?

Q2。Jettison和Jackson(与JAXB一起使用时)和Autobeans为pojo生成相同的JSON吗?

第三季。这是最关键的问题。你可以忽略上面的其他问题,但你必须回答这个问题。给我一对可以一起工作的服务器端和GWT客户端JSONizer/deJSONizer组合。例如,我可以在客户端使用Autobeans,在服务器端使用jaxb - jettition,并期望JSONized POJO表示法相同吗?

第四季度。通过在whatever.gwt.xml文件中包含JAXB、Jettison/Jackson的java源代码,是否可以在GWT客户端使用JAXB-Jettison或JAXB-Jackson ?是否有部分JAXB, Jettison/Jackson源代码可能依赖于反射,或不可序列化等,这将不可能在GWT客户端代码中使用JAXB + Jettison/Jackson ?如果可能的话,请解释一下怎么做?

~

我应该澄清一下Q1:

我不是在问JSON的RFC。我问的是JSON POJO格式。当POJO转换为JSON时,每个人都有自己的方式——所以,我认为应该有一个RFC来标准化POJO转换为JSON的方式和格式。有没有标准?!!我希望你的回答不要引用JSON的RFC !!

~

需要有人告诉我

  • badgerfish在GWT客户端
  • 与GWT客户端-服务器匹配的JSON-RPC。

没有映射的标准,但我认为存在明显的简单映射,考虑到JSON格式的简单性和Java bean的事实标准(即set/get方法到逻辑属性名的映射)。Jettison是少数例外之一。

Jettison与其说是JSON/POJO库,不如说是JSON<->XML库:它将JSON转换为XML API调用(反之亦然),以允许在JSON上使用XML工具,如JAXB进行XML数据绑定。但这里的代价是,它生成和使用的JSON具有额外的复杂性,这种复杂性只需要与XML api一起使用。与Jackson、GSON、Flex-json和其他"原生"JSON库使用的通常的直接绑定相比,这就是它的非标准之处。

我建议不要使用Jettison,除非你真的,真的必须出于某种原因。即使您同时生成XML和JSON也不行——通常您最好使用JSON工具将JSON映射到pojo,并将XML与pojo分开(使用JAXB等)。

Jettison旨在弥合(当时)更成熟的XML工具和较新的JSON格式之间的差距。但是现在已经有很多成熟的JSON库了,这并没有什么好处。

JSON只是JavaScript的一个子集,它是由Douglas Crockford"发明"的。以下是application/json的RFC: http://www.ietf.org/rfc/rfc4627.txt?number=4627。因此,您的任何服务器端解决方案都应该创建相同的结果。

我们在客户端使用RestyGwt (http://restygwt.fusesource.org/),它工作起来很有魅力。它的JSON编码风格与默认的Jackson Data Binding是兼容的,所以它应该也可以与Jackson一起工作。

最新更新