一尘不染

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

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

阅读 547

收藏
2020-07-27

共1个答案

一尘不染

尝试设置JSONObject.NULL而不是null

用于明确定义没有值的名称的哨兵值。与null不同,具有以下值的名称:

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

与null相比,此值返回true违反了equals(Object)的一般协定。其toString()方法返回“ null”。

2020-07-27