Je récupère un JSON en utilisant Retrofit 2, qui transporte un objet si la clé a une valeur autre qu'un tableau vide. ex:Vérification de l'objet JSON dans Java
Si la clé à savoir adresse a des valeurs, il retourne l'objet
{
"student": {
"name": "Some name",
"address": {
"house": "5",
"road": "3"
}
}
}
Si la clé à savoir adresse n'a pas de valeur, il retourne un tableau vide
{
"student": {
"name": "Some name",
"address": []
}
}
Dans ma classe POJO, j'ai fait en sorte que mon type de classe Address soit objecté afin que retrofit puisse analyser le 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;
}
}
Maintenant, comment puis-je vérifier que le type d'adresse est objet ou un tableau?
J'ai essayé avec isArray(), mais je n'ai pas trouvé de résultat.
if(obj.getclass().isArray())
Merci d'avance.
Vous pouvez le faire '(obj instanceof JSONObject) 'ou' (instanceobj de JSONArray) ' –
vérifiez si cela vous aide http://stackoverflow.com/a/13100642/2116420 – Naz141