2009-11-25 51 views
0

我正在使用GWT。目前我的要求很簡單。我要在以下格式的JSON:創建對象以獲得預期Json

{":question" : { ":id":"123", ":question_text":"some text", ":nodes":["123","111"]}} 

我需要建立在GWT代碼的對象,這樣當我使用jQuery的JSON插件來解析對象;我應該得到以上列出的JSON。這個json需要被髮送到遠程服務。

目前我已經嘗試使用Java Hashmaps和Java自定義對象爲這些屬性建模,但他們似乎總是生成JSON元數據,我只是無法獲得這種格式。

如果有人可以建議我如何去建模這個數據對象,這樣我得到一個按預期解析的JSON,那將是非常棒的。

或者我可以在JavaScript中編寫一個簡單的自定義JSON解析器嗎?我怎麼做?

歡呼 -Priyank

+0

您的問題很不清楚。你想做什麼?你的GWT應用程序是否生成JSON? JSON是將對象序列化爲字符串的協議,反之亦然。 –

+1

的確很不清楚。如果您只需要JSON,然後將其寫入字符串並將其傳遞給調用jQuery的JavaScript本機代碼。 GWT對象將總是包含額外的東西,因爲它們不僅僅是一個簡單的映射到可讀的JSON字符串,並且無論如何所有成員和類都會被混淆。 –

+0

是的,我確實只是需要一個JSON,最後我以本地方法傳回。最初,我只是在尋找如何確保在給定一個沒有將元數據放入對象的對象時獲得精確的JSON。也許http://code.google.com/p/gwt-jsonizer/這會起作用;但我從來沒有想過嘗試它。 – Priyank

回答

2

只是把它扔在那裏,但是也有一些相當不錯的,簡單的幾個JSON Java庫。這兩個我有我的大部分有經驗有:

的雙方互惠(和大多數其他JSON庫的Java)是他們處理編組最原生的Java對象類型來理解JSON等價物 - 換句話說,它們可以很容易地將變量的內容添加到JSON結構中,無論變量是整數,長整數,字符串,布爾值等等。因此,使用JSON-Lib,您可以按如下方式構建您的示例:

int id = 123; 
String questionText = "some text"; 
int[] nodes = new int[] { 123, 111 }; 

JSONObject question = new JSONObject(); 
question.put(":id", id); 
question.put(":question text", questionText); 
question.put(":nodes", nodes); 
JSONObject json = new JSONObject(); 
json.put(":question", question); 

String jsonString = json.toString();