我正在使用Retrofit和Gson
來進行API調用。我對服務器的響應有問題。對於某些屬性,它將發送空JSONArray
而不是空JSONObject
。例如: -gson句柄:預計BEGIN_OBJECT,但是BEGIN_ARRAY
:
{
"pagination": {
"links": {
"next": "http://api.com/nextlink"
}
}
}
,但有時當 「鏈接」 是空的,服務器發送我:
{
"pagination": {
"links": []
}
}
造成java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY
。
我知道我可以在創建GsonBuilder
時使用對象「分頁」和registerTypeAdapter
使用自定義JsonDeserializer
來處理它。
但我的問題是:這是可能的一般處理這種情況下的所有反應?我無法訪問API,所以我無法更改它,並且我不知道我可以獲得哪些屬性爲JSONArray
而不是JSONObject
。
謝謝。
[預計BEGIN_ARRAY但是BEGIN_OBJECT](http://sachinpatil.com/blog/2012/07/03/gson/) - 類似的問題與一般的解決方案。 – Ziem