J'ai une réponse qui revient d'un serveur et j'attends une valeur de type String, j'ai donc écrit ceci pour l'interpréter
public String getMessageFromServer(JSONObject response) {
String msg = response.getString("message");
return msg;
}
alors, quand j'utilise ceci dans mon code et que j'obtiens une null
depuis le serveur, la fonction ne renvoie pas la valeur null
il renvoie "null"
à la place.
J'ai vu ce rapport de bogue mais je ne vois pas de solution.
EDIT :
J'ai un petit hack pour résoudre ce problème mais c'est moche et je cherche une meilleure solution :
public String getMessageFromServer(JSONObject response) {
Object msg = response.get("message");
if(msg == null) {
return null;
}
return (String) msg;
}
EDIT #2 :
après des années, en revenant sur cette question, je vois que je n'avais pas tout à fait tort ici et que JSONObject
a une méthode intégrée pour cela.
La façon d'obtenir une valeur facultative à partir d'un JSONObject
est d'utiliser cette méthode JSONObject.optString("message", DEF_VALUE);