检查 JSON 节点是否为空

set*_*ine 0 java android json

我正在从 api 返回一些 JSON,根对象的子节点之一是item.

我想检查这个节点的这个值是否为空。这是我正在尝试的,JSONException当节点实际上为空时,它当前正在抛出一个:

if (response.getJSONObject("item") != null) {

// do some things with the item node

} else {

// do something else

}
Run Code Online (Sandbox Code Playgroud)

逻辑猫

07-22 19:26:00.500: W/System.err(1237): org.json.JSONException: Value null at item of type org.json.JSONObject$1 cannot be converted to JSONObject
Run Code Online (Sandbox Code Playgroud)

请注意, thisitem节点不仅仅是一个字符串值,而是一个子对象。先感谢您!

小智 9

要对 JsonNode 字段进行正确的空检查:

JsonNode jsonNode = response.get("item");

if(jsonNode == null || jsonNode.isNull()) { }

该项目要么不存在于响应中,要么显式设置为 null 。


Neb*_*ebu 5

好的,所以如果节点始终存在,您可以使用 .isNull() 方法检查 null。

if (!response.isNull("item")) {

// do some things with the item node

} else {

// do something else

}
Run Code Online (Sandbox Code Playgroud)