在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
字符串
5条答案
按热度按时间ao218c7q1#
尝试设置
JSONObject.NULL
而不是null
:用于显式定义无值名称的标记值。与null不同,具有此值的名称:
此值违反了equals(Object)的一般约定,因为它在与null比较时返回true。它的toString()方法返回“null”。
okxuctiv2#
对于我的net.sf.json.JSONObject,我需要创建一个空的
JSON
字符串
下面是我如何将class导入groovy的:
型
qpgpyjmq3#
我创建了这个项目https://github.com/leonardofel/JSON-java-put-null-fix
要更改(或修复),只需将库导入到pom.xml
这就是你的代码的行为方式:
字符串
wwtsj6pe4#
创建一个实用程序类,或者如果你已经有了一个实用程序类,就在其中创建这个实用程序方法。
字符串
然后在将所有输入传递给JSONObject put方法之前,通过这个实用程序传递所有输入,如下所示:(我将使用问题中的代码示例)
型
这将打印一个JSON字符串,如下所示
{“key”:null }
qlckcl4x5#
这个打印
字符串