2

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

我需要通过将 POJO 编组/解组到 JSON 中来在 GWT 客户端和服务器之间传递 POJO。

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

Q1。JSON 中有标准的 POJO 表示法吗?是否有 ietf RFC 或 ISO 或 ECMA 指定 JSON 中 POJO 表示法的格式?或者它是对所有人免费的,自由主义的无政府状态?

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

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

Q4。通过在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 !!

~

关于什么

有人需要告诉我

  • GWT 客户端上的獾鱼
  • 和 GWT 客户端-服务器匹配 JSON-RPC。
4

2 回答 2

2

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。

于 2011-08-07T13:48:14.817 回答
2

没有映射标准,但我认为显然是简单的映射,因为 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 或从 POJO 映射,并将 XML 与 POJO 分离(使用 JAXB 等)。

Jettison 旨在弥合(当时)更成熟的 XML 工具和新的 JSON 格式之间的差距。但是现在有几十个成熟的 JSON 库可用,并没有太大的好处。

于 2011-08-08T03:24:28.670 回答