2010-07-18 72 views
6

Google Web Toolkit具有JSON庫(com.google.gwt.json.client)。該名稱的「客戶端」部分讓我懷疑它不適合使用服務器端。在服務器端的RPC方法,下面的代碼證實了我的懷疑:使用Google Web Toolkit構建JSON服務器端

System.out.println("attempting to make JSONArray"); 
JSONArray test = new JSONArray(); 
System.out.println("Made JSONArray"); 

通過拋出ClassNotFound的(JSONArray),其中的例外。我需要構建一些JSON服務器端。

1)我正確地認爲我無法在服務器上使用com.google.gwt.json.client包嗎? 2)如果是這樣,是否有一個很好的替代方案,可以使用大致相同的接口在服務器上構建JSON?

我在App Engine上運行我的應用程序,以防萬一。

+0

[JSON <->可能與GWT協同工作的Java序列化](http://stackoverflow.com/questions/683123/json-java-serialization-that-works-with-gwt) – 2010-07-18 17:27:50

回答

3

1)我正確地認爲我不能在服務器上使用com.google.gwt.json.client包嗎?

正確。該類包含大量原生JS方法 - 重要的東西,如get() - 並且意味着被編譯爲JavaScript以用於客戶端。至於2),就像你已經發現的那樣,你從json.org找到的庫很好,我也聽說過有前景的gson

+0

GSON的+1。 .. – 2011-01-03 05:49:18

1

我結束了使用Java庫從JSON.org:

http://www.json.org/java/

這似乎編譯確定爲App Engine。我不是100%確定的,但我相當確信GWT捆綁的JSON庫不能用於服務器端,這很奇怪。

1

最好的選擇之一是在客戶端使用RestyGWT,在服務器端使用Jackson。這樣你就可以獲得JSON編組的透明對象。