【问题标题】:Use a shared JSON class on Server and Client在服务器和客户端上使用共享 JSON 类
【发布时间】:2015-04-22 05:02:03
【问题描述】:

我想在 GWT 客户端和服务器上创建一个共享类,它在服务器端使用 org.json.*,在客户端使用 com.google.gwt.json.client.*

我的共享课是这样的:

import org.json.JSONObject;

class SomeDto {

   public fromJSON (JSONObject x) } 
   }
}

这在服务器端工作正常,但在客户端 JSONObject 应替换为 com.google.gwt.json.client.JSONObject

如何在服务器和客户端上使用共享的 JSON 类,它在客户端和服务器上使用不同的 JSON 实现?

【问题讨论】:

  • 为什么不使用github.com/nmorel/gwt-jackson ?这个库很容易用于将 java 对象转换为 JSON。
  • 我需要在纯 Java 上工作,比如在 Android 和 GWT 上。
  • 好的。在 DTO 类之外处理 ser/deser 不是更简单吗?例如。 SomeDtoServerSerializer 将使用org.json.JSONObjectSomeDtoClientSerializer 将使用com.google.gwt.json.client.JSONObject
  • @Simon-Pierre 具体来说是所有客户端代码。它应该与在 Android 和 GWT 上使用的相同。

标签: java javascript html json gwt


【解决方案1】:

你有一些在客户端和服务器端工作的实现:

  • Elemental Json 是一个完整的 Java 实现,可在服务器端和客户端运行,请查看其test cases 以了解其工作原理。它的重量非常轻,并在客户端使用浏览器原生优化。

  • GwtQuery 具有 json 对象的数据绑定实现。它在双方都有效并且表现非常好。只需定义一个扩展 JsonBuilder 的接口,您就可以在服务器和客户端共享它。查看这个test 类以查看用法或查看它的documentation。顺便说一句,gquery 使用元素 json 是为了不依赖有争议的 json.org 库。

  • 最后,GWT 中的经典 AutoBeans 是处理 JSON 并将其绑定到 POJO 的选项。 IMO 它需要这么多样板代码。

【讨论】:

    猜你喜欢
    • 2021-03-10
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多