1

我们已经将 GWT 平台与 GWTP 客户端和 GUICE 容器中的其他 Web 服务一起使用。来自 GWT 客户端的 Rest 服务调用是使用 JSONPRequestbuilder 完成的。

我想知道 GWT 的最佳 JSON 响应字符串解析技术是什么?- JSON 到 Java 序列化/反序列化

在谷歌上大量搜索后,我发现我们有很多选择。

  1. GWT 内置 JSONParser parseStrict 方法,称为安全且最佳的方法。但这可能不适合复杂的 JSON 响应字符串。因为您需要编写大量代码来解析 JSON 响应中的每个项目并转换为 Java 对象。
  2. GWT AutobeanFactory 方法 - 我不知道如何最好地使用它?我们使用的是 GWT 2.4,您根本没有使用这种方法的完整示例。在任何地方,人们都说它是一种方法,但我们没有对此进行详细描述。google 上的一些示例来自 gwt 旧版本,这些版本在 GWT 2.4 中发生了很大变化。请有人用 GWT 2.4 和 JSON ser/deser 的 Autobean 工厂方法分享一个很好的例子......
  3. JavaScript 覆盖类型:人们说这不是安全的方式。所以我有点犹豫我们是否应该使用它。

此外,我们很快就会从 GWT 迁移到 SmartGWT。我希望,即使在 SmartGWT 中,其余的调用服务也应该继续工作而无需任何更改。(因为 SmartGWT 还附带了预定义格式的 JSON 休息支持,我们可能不会使用它,因为我们通常已经构建了这些服务)。

4

1 回答 1

3

如果您需要自省(您的 JSNO 对象没有严格的架构),请使用JSONParser.
您还可以使用稍微容易使用但根本没有记录的 API com.google.web.bindery.autobean.shared.Splittable(更具体地说是JsonSplittable在 DevMode 和JsoSplittablein prod 模式下)。

如果您有严格的模式,则使用 JSO 覆盖类型或 AutoBean。与 JSO 相比,AutoBean 的开销较小,但允许使用自定义 JSO ListSetMap不是JsArray自定义 JSO。AutoBean 也可以通过. AutoBeanFactorySource这对于不需要GWTTestCasesluggish 的单元测试也很有用,这与 JSO 不同。

您可以在其官方文档中找到 AutoBean 的示例:http ://code.google.com/p/google-web-toolkit/wiki/AutoBean

至于安全性,只要您使用parseStrict(AutoBean 在后台使用,所以不用担心),那么您就是安全的。JSO 的安全性不会低于 AutoBean 或JSONParser(或Splittable)。

于 2012-05-21T12:43:09.863 回答