我正在使用 Retrofit 2 获取 JSON,如果键有值,则它携带对象,否则为空数组。例如:
If the key i.e address has values it returns object
{
"student": {
"name": "Some name",
"address": {
"house": "5",
"road": "3"
}
}
}
If the key i.e address does not have any value it returns empty array
{
"student": {
"name": "Some name",
"address": []
}
}
在我的 POJO 类中,我将 Address 类类型设置为对象,以便 Retrofit 可以解析 JSON。
public class Student {
@SerializedName("name")
@Expose
private String name;
@SerializedName("address")
@Expose
private Object address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Object getAddress() {
return address;
}
public void setAddress(Object address) {
this.address = address;
}
}
现在如何检查地址类型是对象还是数组?
我尝试过 isArray(),但没有找到结果。
if(obj.getclass().isArray())
提前致谢。
最佳答案
可以通过instanceof
检查对象是JosnObject
还是JsonArray
?
if (address instanceof JSONObject) {
JSONObject jsonObject = (JSONObject) address;
}
else if (address instanceof JSONArray) {
JSONArray jsonArray = (JSONArray) address;
}
关于java - 检查java中的JSON对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42896781/