2015-09-11 68 views
1

我解析在改造模型類JSON響應。改造響應解析建議

我的問題是,響應不恆定意味着有些時候它會與2個PARAMS和一定的時間不止於此,

EXP:

1日響應:

{ 
    "error": true, 
    "data": { 
     "order_id": [ 
      "Order Id does not exists" 
     ] 
    }, 
    "code": 500 
} 

第二回應:

{ 
    "error": false, 
    "data": [ 
     "Order #P have sent successfully" 
    ], 
    "code": 200 
} 

所以在第一個響應中,如果訂單ID不存在作爲迴應,我將獲得order_id作爲一個關鍵,但在第二個迴應中,我不會得到,因爲它是成功的。

***我可以問後端傢伙改變的反應,但如果萬一解決這個問題,任何其他前綴的API響應,如果我將如何處理,我會得到這樣的結果,然後?

+0

只需使用GSON。它會處理你所有的東西..! – AndiGeeky

+0

但是在這種情況下,如果GSON無法處理響應,則會出現改裝錯誤;在錯誤的情況下,我也需要也是「數據」的響應結果:{ 「order_id」:[ 「訂單ID不存在」 ] } – Custadian

+0

恐怕您必須更改json結構。 – AndiGeeky

回答

1

您可以使用模型類是這樣的:

public class ResponseModel { 
    private boolean error; 
    private int code; 
    private JsonElement data; 

    // Setters, getters, etc. ... 
} 

然後你就可以檢查錯誤和代碼值和你喜歡的方式處理數據對象。你提到的兩種情況都適用於這種模式。

您可以在此data變量序列化,甚至一些其他模型類時,你就會知道你有什麼裏面的數據。

1

對於這種情況,您應該編寫自定義Deserializer並檢查data是數組還是jsonobject。

恕我直言,在使用相同的密鑰保存錯誤信息和非錯誤信息的一般想法是不好的。