web-dev-qa-db-fra.com

Comment définissez-vous la valeur null avec org.json.JSONObject en java?

Comment définissez-vous la valeur null avec org.json.JSONObject en java? Je peux certainement lire si une valeur est nulle en utilisant isNull - mais il semble que lorsque je mets null, cela m'ignore:

JSONObject o = new JSONObject();
o.put("key",null);
o.isNull("key"); // returns true, buuuut...
o.has("key");    // returns false
o.isNull("somethingIHaventSetAtAll");    // also returns true, unfortunately
63
B T

Essayez de définir JSONObject.NULL au lieu de null:

Une valeur sentinel utilisée pour définir explicitement un nom sans valeur. Contrairement à null, les noms avec cette valeur: 

  • afficher dans le tableau names () 
  • afficher dans l'itérateur de clés () 
  • renvoie true pour has (String) 
  • ne pas jeter sur get (String) 
  • sont inclus dans la chaîne JSON codée. 

Cette valeur viole le contrat général d'égal à égal (Object) en renvoyant la valeur true à null. Sa méthode toString () renvoie "null".

149
rekire

Pour moi avec net.sf.json.JSONObject je dois créer un null JSON par

new JSONObject(true)

C'est comme ça que je me classe en groovy:

groovy.grape.Grape.grab(group: "org.kohsuke.stapler", module: "json-lib", version: "2.4-jenkins-2")
0
akostadinov