如何设置一个值为null与java中的org.json.JSONObject?

如何设置一个值为null与java中的org.json.JSONObject? 我可以肯定地阅读,如果一个值是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 

尝试设置JSONObject.NULL而不是null

一个sentinel值用于明确定义一个没有值的名字。 与null不同,具有此值的名称:

  • 显示在names()数组中
  • 显示在keys()迭代器中
  • 返回true为has(String)
  • 不要扔(get)(String)
  • 包含在编码的JSONstring中。

这个值通过与null比较而返回true来违反equals(Object)的一般合约。 它的toString()方法返回“null”。