我正在使用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