Подтвердить что ты не робот

Как установить значение null в org.json.JSONObject в java?

Как установить значение null в org.json.JSONObject в java? Я могу, конечно, прочитать, если значение равно null, используя isNull - но кажется, что когда я помещаю null, он просто игнорирует меня:

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
4b9b3361

Ответ 1

Попробуйте установить JSONObject.NULL вместо null:

Значение дозорного значения, используемое для явного определения имени без значения. В отличие от null, имена с этим значением:

  • отображается в массиве names()
  • отображается в клавишах() iterator
  • return true для has (String)
  • не набрасывать get (String)
  • включены в кодированную строку JSON.

Это значение нарушает общий контракт equals (Object), возвращая true по сравнению с null. Его метод toString() возвращает "null".