2013-03-01 50 views
0

我已經用Jersey構建了一個REST應用程序,但沒有成功從JAXB中獲取自然符號。我簡單地調整了我的GWT應用程序,將錯誤傳輸的類型轉換爲我想要的。我知道,不是最好的解決方案,但沒有時間去做其他事情。如何從應用引擎獲取自然的json符號?

現在,我嘗試建立雲終端上的應用程序引擎,讓這不是谷歌顯示在他們的例子完全一樣的格式,我懷疑有什麼我已經錯過了關於GAE。

這是我從GAE想:

{ 
"anumberprop":123, 
"atextprop":"blah", 
"anarray":[{"another_no":432}] 
} 

這是我真正得到:

{ 
"anumberprop":"123", 
"atextprop":"blah", 
"anarray":{"another_no":"432"} 
} 

這會導致問題,因爲客戶端將是一個GWT應用程序或谷歌的Apps腳本在內部解析JSON,當類型不匹配時,這會給出很多例外。

我在做什麼錯?

最好的問候, 彼得

回答

1

的432與「432」可能是因爲雲端點引用64位整數這樣的JavaScript客戶端可以使用標準的JSON解析器沒有對這些數字丟失精度。我無法重現缺少的數組括號。你能發佈你的響應對象嗎?

+0

感謝saiyr,你說得對。我使用的數字是一個Long變量。使用int給出我的預期。此外,括號是我期望他們與雲端點的位置。但是,上述問題仍然適用於使用Jersey的REST服務。在這種情況下知道如何控制JSON表示法會很有趣。 – 2013-03-03 20:05:34

+0

對不起,我不完全清楚你現在問什麼(我對澤西不熟悉)。我的印象是,你從端點獲得不正確的輸出,因爲「anarray」的值實際上不是數組。情況並非如此嗎? – saiyr 2013-03-04 19:22:53

+0

使用Jersey時,它默認爲「映射」JSON表示法,其中所有類型都作爲字符串發送,並且如果數組僅包含單個對象,則不使用方括號發送它。由於雲端點看起來行爲正確,因此我想知道如果有人知道如何配置應用引擎以在使用Jersey時提供自然的JSON表示法。 – 2013-03-07 15:56:59

相關問題