我正在关注JSON响应: "数据"在对象中:
"status": true,
"data":{
//Some data
}
有时它以数组形式出现:
"status": true,
"data":[
//Some data
]
如何动态检查数据的响应,是对象还是数组? *我正在使用Retrofit
我的Retrofit解析数组:
@SerializedName("data")
ArrayList<DataDetail> dataList;
提前致谢!
答案 0 :(得分:2)
JSONObject json;
Object intervention;
JSONArray interventionJsonArray;
JSONObject interventionObject;
json = RestManager.getJSONfromURL(myuri); // retrieve the entire json stream
Object intervention = json.get("intervention");
if (intervention instanceof JSONArray) {
// It's an array
interventionJsonArray = (JSONArray)intervention;
}
else if (intervention instanceof JSONObject) {
// It's an object
interventionObject = (JSONObject)intervention;
}
else {
// It's something else, like a string or number
}
答案 1 :(得分:1)
如果Json不知道它是JsonObject还是JsonArray,那么只需使用如下的JsonElement:
<div class="row">
<div class="banner banner-lg"> </div>
<div class="banner banner-sm"> </div>
</div>
<div class="row">
<div class="banner banner-sm"> </div>
<div class="banner banner-sm"> </div>
<div class="banner banner-sm"> </div>
</div>
<div class="row">
<div class="banner banner-sm"> </div>
<div class="banner banner-lg"> </div>
</div>
现在,根据您的要求将此JsonElement转换为您的相应型号,您可以使用以下代码:
@SerializedName("data")
private JsonElement data;
快乐编码&lt; {}&gt;;