我使用API,其中一个对象可以是一个数组,或者它可以是任何对象,我不知道在哪种情况下它将是对象或数组,所以我不能使用不同的对象基础一些条件。
很遗憾,我无法访问API代码,因此我无法对其进行任何更改。我要做的任何技巧都将在客户端。
那么处理该场景的最佳方法是什么。
修改:响应示例
.
.
"ecf":"0",
"place":{ },
"mn":"1st Test",
"teams":[ ],
"past_ings":[
{
"s":{ },
"d":{
"a":{
"t":{
"i":"5221",
"a":"3",
"c":"not out",
"dt":null,
"fd":"0",
"bd":"0",
"cb":"no",
"b":"1",
"r":"0",
"sr":"0",
"four":"0",
"six":"0",
"name":"Umesh Yadav"
}
}
}
}
.
.
对象t可以是数组,也可以是对象。
注意:我正在使用Gson解析并在我的网络层中使用Retrofit。
答案 0 :(得分:1)
Object response = json.get("response")
if (response instanceof JSONArray) {
// It's an array, cast it as a JSONArray to use it.
} else {
// It's an object, cast it as a JSONObject to use it.
}
答案 1 :(得分:0)
在Java中用Gson解析json时,只需定义这是Object。 之后你有手动,如果那么对象是数组或对象。