Comment puis-je détecter lorsqu'une valeur json est nulle? par exemple: [{"username": null}, {"username": "null"}]
Le premier cas représente un nom d'utilisateur inexistant et le second un utilisateur nommé "null". Mais si vous essayez de les récupérer, les deux valeurs donnent la chaîne «null»
JSONObject json = new JSONObject("{\"hello\":null}");
json.put("bye", JSONObject.NULL);
Log.e("LOG", json.toString());
Log.e("LOG", "hello="+json.getString("hello") + " is null? "
+ (json.getString("hello") == null));
Log.e("LOG", "bye="+json.getString("bye") + " is null? "
+ (json.getString("bye") == null));
La sortie du journal est
{"hello":"null","bye":null}
hello=null is null? false
bye=null is null? false
has(java.lang.String);
méthodeRéponses:
Essayez avec
json.isNull( "field-name" )
.Référence: http://developer.android.com/reference/org/json/JSONObject.html#isNull%28java.lang.String%29
la source
Étant donné que JSONObject # getString renvoie une valeur si la clé donnée existe, elle n'est pas nulle par définition. C'est la raison pour laquelle JSONObject.NULL existe: pour représenter une valeur JSON nulle.
la source
Pour Android, il lèvera une exception JSONException si un tel mappage n'existe pas. Vous ne pouvez donc pas appeler cette méthode directement.
si vos données peuvent être vides (la clé peut ne pas exister), essayez
ou
au lieu.
Dans votre code de démonstration, le
ce que vous obtenez est la chaîne "null" non nulle.
votre shoud utiliser
la source
Vérifiez d'abord avec
isNull()
.... si vous ne pouvez pas travailler, essayez ci-dessouset vous devez également
JSONObject.NULL
vérifier la valeur nulle ...et dans votre cas, vérifiez également
resultObject.getString("username").trim().eqauls("null")
la source
Si vous devez d'abord analyser json et gérer l'objet plus tard, essayez ceci
Analyseur
Gestionnaire
la source
Voici une méthode d'assistance que j'utilise pour obtenir des chaînes JSON avec une seule ligne de code:
et puis quelque chose comme ça:
vous donnerait la valeur de votre chaîne ou définirait en toute sécurité votre variable de chaîne sur null. J'utilise Gson chaque fois que je peux pour éviter de tels pièges. Il gère beaucoup mieux les valeurs nulles à mon avis.
la source