我正在開發與Rest服務的集成,其中響應是JSON。如果在響應未達到預期時用GSON解析json?
我做的第一個請求是登錄有兩個可能的回報。
通常情況下,積極登錄響應來自象下面這樣:
{"data":{"userID":"4f561b74001ff932afd58200a752b821","sessionID":"6cc960751eef45db83dd8db7f47337a6","versionInformation":{"currentAPI":"v2.0","buildNumber":"28b12d751c5ea88d393e68285ac57ed309ae04fa","apiVersions":{"v1.0":"\/attask\/api\/v1.0\/","v2.0":"\/attask\/api\/v2.0\/"},"lastUpdated":"2013\/02\/12 17:42:57","release":"R16","version":"4.0"},"locale":"pt_BR","timeZone":"America\/Sao_Paulo","timeZoneName":"Brasilia Time","iso3Country":"BRA","iso3Language":"por","currency":{"useNegativeSign":true,"fractionDigits":2,"symbol":"R$","ID":"BRL","groupingSeparator":".","decimalSeparator":","}}}
我已經沒有問題,這反序列化使用GSON假設它永遠不會改變的格式。但是,如果JSON響應以不同的方式出現時呢?就像我試圖用錯誤的用戶名/密碼登錄?
的負面反應會是這樣的:
{"error":{"class":"com.attask.biz.externallogin.ExternalLoginException","message":"The following error occurred while authenticating with an external system: Invalid password"}}
所以我的問題是,有沒有一種方法,使GSON選擇哪個是最合適的對象進行反序列化或做我必須嘗試反序列化假設它是正確的,並在抓塊上處理它?
我希望我能說清楚,我期待着您的建議。
乾杯
聖保羅Almeida的
現在這一切都有意義......我要求兩個人都使用curl,並且我可以看到響應代碼已更改。看起來像那個實施了休息服務的人做他的作業=) 真正的感謝隊友 – 2013-02-28 19:09:15