2010-02-06 37 views
18

我目前正在用Eclipse中的GWT 2.0在eclipse中編寫一個Web應用程序。 我想知道是否有方法在GWT應用程序的客戶端代碼中使用Gson library在GWT客戶端代碼中使用Gson庫

,如果有一種方法 - 請告訴我怎麼...

謝謝!

+0

這可能不是正是你正在尋找的解決方案,但我發現,使用JavaScript覆蓋類型,便於搬運JSON對象是最好的 - 更多信息請看這裏:HTTP://googlewebtoolkit.blogspot。 com/2008/08/getting-to-really-know-gwt-part-2.html(然後你可以在服務器端使用Gson,在客戶端使用JSO--不是完美的解決方案,而是比通過標準的「手動」解析更好GWT方法)。 – 2010-02-06 17:15:32

+1

問題是 - 在我看來,重寫類型的寫法與手動解析JSON對象的工作量相同。 我已經寫過類(從wsdl生成),我試圖以json格式對該wsdl執行HTTP請求,並將響應加載到我的對象中。你有什麼做這個最好的方法的想法? – Rubinsh 2010-02-07 07:44:38

回答

15

不完全是你寫的,但我想你的意思是如何在GWT代碼中序列化/反序列化JSON?

在GWT 2.1.1,則可以使用GWT AutoBean framework

見那裏有這種神奇的代碼文章底部...

String serializeToJson(Person person) 
{ 
    // Retrieve the AutoBean controller 
    AutoBean<Person> bean = AutoBeanUtils.getAutoBean(person); 
    return AutoBeanCodex.encode(bean).getPayload(); 
} 

Person deserializeFromJson(String json) 
{  
    AutoBean<Person> bean = AutoBeanCodex.decode(myFactory, Person.class, json);  
    return bean.as(); 
} 

的serializeToJson()鑊對我很好,即使實例是繼承的人,但我沒有嘗試的deserializeFromJson ...

25

Gson使用GWT中不支持的Java功能,如反射。因此在GWT客戶端代碼中不可能使用Gson。

+0

所以我只能在後端(服務器)端使用GSON? – Rubinsh 2010-02-14 16:04:32

+3

這是正確的。在客戶端,最簡單的方法是將json轉換爲對象是使用覆蓋類型。 – Lauri 2010-02-14 16:23:33

+0

他們沒有選項可以從後端的GSON對象生成「覆蓋」類,這太糟糕了。這會改善情況。 – GreenKiwi 2010-12-02 07:20:15

2

我有寫一個庫,允許使用GWT與GSON,你可以下載here,並享受它。

+0

你只發送數據到服務器將其轉換/ gson – kozla13 2014-07-12 23:53:28

+0

你是對的,這就是爲什麼我要廢棄這個 – heroandtn3 2014-07-13 03:35:11

3

(隨意提高我的帖子,如果你喜歡)

目前(2015年2月7日)是不可能的,雖然我很喜歡GSON非常多,希望有隻有一個共享代碼的解決方案: - /,但也有一些其他的庫(我只知道AutoBeans和GSON自己,有一個快速瀏覽一下Piriti):

(有些同時支持或只是XML的一個和JSON(德)序列化)

(*)從GWT項目本身

比較: