在 Java 中,如果我使用以下 JSON
字符串作为示例,我将如何检查对象是否为 empty/null?
{"null_object_1" : [], "null_object_2" : [null] }
我试过使用:
if(!jsonSource.isNull("null_object_1")) {/*null_object_1 is not empty/null*/}
if(!jsonSource.isNull("null_object_2")) {/*null_object_2 is not empty/null*/}
但是这些 IF
语句仍然返回 true(就好像它们不为空/null)。
有没有人有解决办法?
编辑:
我所说的“对象”实际上是指 array
。
最佳答案
这两个东西都不是null
;他们是数组。结果正是您所期望的。
您的一个数组是空的,另一个包含一个 null
的元素。
如果你想知道一个数组是否为空,你需要获取数组,然后检查它的长度。
JSONObject myJsonObject =
new JSONObject("{\"null_object_1\":[],\"null_object_2\":[null]}");
if (myJsonObject.getJSONArray("null_object_1").length() == 0) {
...
}
编辑以澄清:没有元素(空)的数组和包含null
元素的数组是完全不同的东西 .对于第二个数组,它既不是 null
也不是空的。正如我所提到的,它是一个包含单个元素的数组,该元素为 null
。如果您有兴趣确定是否是这种情况,则需要获取数组然后遍历它以测试每个元素以查看它是否为 null
并相应地根据结果采取行动。
关于java - 如何检查 JSON 对象在 Java 中是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8954708/