如何在Java中检查JSON对象是否为空?

92J*_*cko 7 java json isnull

在Java中,如果我使用以下JSON字符串作为示例,我将如何检查对象是否为空/ null

{"null_object_1" : [], "null_object_2" : [null] }
Run Code Online (Sandbox Code Playgroud)

我尝试过使用:

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*/}
Run Code Online (Sandbox Code Playgroud)

但是这些IF语句仍然返回true(就好像它们不是空/ null).

有没有人有办法解决吗?

编辑: 通过"对象",我的意思是array.

Bri*_*ach 13

这两件事都不是null; 他们是阵列.结果正是您所期望的.

你的一个数组是空的,另一个包含一个元素null.

如果您想知道数组是否为空,则需要获取数组,然后检查其长度.

JSONObject myJsonObject = 
    new JSONObject("{\"null_object_1\":[],\"null_object_2\":[null]}");

if (myJsonObject.getJSONArray("null_object_1").length() == 0) {
    ... 
}
Run Code Online (Sandbox Code Playgroud)

编辑澄清:不具有元素(空),并且具有是一个元素的数组的数组null完全不同的东西.在你的第二个数组的情况下,它既null不是空的也不是空的.正如我所提到的,它是一个具有单个元素的数组null.如果您对确定是否是这种情况感兴趣,则需要获取数组,然后迭代测试每个元素以查看它是否相应null并根据结果进行操作.