2012-06-01 133 views
2

我們在GWT客戶端使用了JSO來解析我們的JSON。現在,我們需要將我們的Java對象轉換爲JSON字符串。我只是想明白,我們如何才能做到這一點? JSO覆蓋類型用於JSON解析。它也可以用來創建一個JSON請求字符串,或者我們必須通過其他方式去?在GWT中使用Javascript創建JSON請求字符串GWT中的Overlay類型

+0

接受你的答案,比別人會幫你 – Stefan

+0

感謝斯蒂芬...我已經做到了現在。我是新來的stackoverflow,因此不知道我需要去說,接受答案。再次感謝..希望有人回覆 – Santosh

回答

2

在JavaScript中生成JSON對象非常簡單。你可以這樣說:

var obj = { "var1": "hello", "var2": "world" }; 

這將產生兩個可變因素(「VAR1」和「VAR2」)與他們的價值觀JSON對象(「你好」,「世界」)。 可以使用JSON.stringify(jso);方法將對象轉換爲字符串(用於發送目的)。

由於所有變量都被優化爲單個字符串,所以從java代碼生成JSON數據是不可能的(而不是有用的結果),因此應用此方法不會得到有用的結果(如果可能的話)。

如果你已經有一個JSO對象(用safeeval之類的東西生成)。您可以在其中編輯您的可變因素,如:

public final native void newValue(String newValue) /*-{ 
    this.ValueName = newValue; 
}-*/; 

如果再要爲字符串,你在你的JSO類定義以下方法的對象:

public final native String returnAsString() /*-{ 
    return JSON.stringify(this); 
}-*/; 

或使用該Java等級:String s = (new JSONObject(jso)).toString();

這樣您就可以編輯原始輸入數據並將原始對象發送回服務器。

BR

+0

謝謝...奧基。因此,編輯現有的JSO並使用字符串返回到服務器很好。但是,如果我有一個java對象,那麼我們必須手動創建json字符串嗎?我的意思是,我們沒有任何選擇從Java對象創建JSO,然後使用JSO功能創建一個JSON .. – Santosh

+0

已經寫下了我對此的看法: 從Java代碼生成JSON數據是不可能的(很好沒有有用的結果),因爲所有變量都優化爲單個字符串,因此應用此方法不會得到有用的結果(如果可能的話)。 – Stefan