如何在java中使用org.json.JSONObject将值设置为null?

B T*_*B T 67 java json

如何在java中使用org.json.JSONObject将值设置为null?我当然可以通过使用isNull来读取值是否为null - 但是当我放置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
Run Code Online (Sandbox Code Playgroud)

rek*_*ire 154

尝试设置JSONObject.NULL而不是null:

用于显式定义没有值的名称的sentinel值.与null不同,具有此值的名称:

  • 显示在names()数组中
  • 显示在keys()迭代器中
  • 对于has返回true(String)
  • 不要抛出get(String)
  • 包含在编码的JSON字符串中.

与null相比,此值通过返回true来违反equals(Object)的常规协定.它的toString()方法返回"null".

  • 奇迹般有效!谢谢! (2认同)