【问题标题】:GWT (Client) = How to convert Object to JSON and send to Server?GWT(客户端)=如何将对象转换为 JSON 并发送到服务器?
【发布时间】:2011-04-14 05:27:50
【问题描述】:

我知道 GWT 有很好的 RPC 支持。但出于各种目的,我需要自己构建它:

1.) 我怎样才能像这样转换一个 Bean 对象(在客户端);

class MyPerson {

String name;
String getName();
void setName(String name);
//..    
}

用 GWT 转换成 JSON 字符串? (理想情况下只使用来自 GWT/Google 的官方库)。

2.) 其次,如何使用任何 GWT 客户端 Logik 将生成的 JSON 字符串从客户端发送到任何服务器。 (理想情况下只使用来自 GWT/Google 的官方库)。

我搜索了很多,但示例从未显示如何发送数据,而只是接收 JSON 数据。

非常感谢!!! 延斯

【问题讨论】:

    标签: java gwt


    【解决方案1】:

    GWT 将为您创建一个名为 AutoBeanFactory 的漂亮类,不需要第三方库。见http://google-web-toolkit.googlecode.com/svn-history/r9219/javadoc/2.1/com/google/gwt/editor/client/AutoBeanFactory.html

    一旦你有了 AutoBeanFactory,你就可以像这样使用它:

    从 SimpleInterface 类型的对象生成 JSON

    AutoBean<SimpleInterface> bean = beanFactory.create(SimpleInterface.class, simpleInterfaceInstance);
    String requestData = AutoBeanCodex.encode(bean).getPayload();
    
    useRequestBuilderToSendRequestWhereverYouWant(requestData);
    

    从 SimpleInterface 类型的对象解析 JSON

    SimpleInterface simpleInterfaceInstance = AutoBeanCodex.decode(beanFactory, SimpleInterface.class, responseText).as();
    

    您可以使用RequestBuilder 发送这些请求,而无需 GWT-RPC 或 RF 的东西。

    【讨论】:

    • 别忘了继承模块:&lt;inherits name="com.google.web.bindery.autobean.AutoBean"/&gt;
    • 如何获得beanFactory的实例?
    【解决方案2】:

    我建议你使用RestyGWT,它使 JSON REST 服务像 GWT RPC 服务一样工作。

    【讨论】:

      【解决方案3】:

      看看 GWT 的 AutoBean 框架,它可用于创建和接收 JSON 有效负载。 RequestBuilder 类型可用于向服务器发送 HTTP 请求。

      【讨论】:

        【解决方案4】:

        您还有另一个解决方案,即第 3 方解决方案,可能是第二方解决方案,但也可以是第一方解决方案。 第 3 方称为 GSON,它是 google 代码上的一个开源项目。 你可以找到它here

        我用过,很好用,也很简单。

        【讨论】:

        • GSON 不能在 GWT 客户端使用,因为它使用反射。
        猜你喜欢
        • 2013-11-16
        • 1970-01-01
        • 1970-01-01
        • 2021-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-21
        • 1970-01-01
        相关资源
        最近更新 更多