【问题标题】:JSON Parsing in GWTGWT 中的 JSON 解析
【发布时间】:2012-05-21 20:43:09
【问题描述】:

我们已经使用 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 休息支持,我们可能不会使用它,因为我们通常已经构建了这些服务)。

【问题讨论】:

    标签: json gwt smartgwt


    【解决方案1】:

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

    如果您有严格的模式,则使用 JSO 覆盖类型或 AutoBean。与 JSO 相比,AutoBean 的开销较小,但允许使用 ListSetMap 而不是 JsArray 和自定义 JSO。 AutoBean 也可用于服务器端或非 GWT Java 客户端,通过AutoBeanFactorySource。这对于不需要缓慢的GWTTestCase 的单元测试也很有用,这与 JSO 不同。

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

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

    【讨论】:

    • 我们已经开始使用 Javascript 覆盖类型来解析 JSON 响应并且我们成功了。现在,我不知道如何使用 JSO 覆盖类型从 Java 对象创建 JSON 请求。你能建议我如何做到这一点吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 2010-11-24
    相关资源
    最近更新 更多