Android 检查JSONObject键是否存在

Android 检查JSONObject键是否存在,android,json,jsonexception,Android,Json,Jsonexception,我正在对一个后端进行api调用,该后端总是有一个JSONArray系列,有时还有一个JSONArray位置。在下面的代码中,我试图编写一个if语句,该语句表示,只要没有placesarray,就发出另一个http请求。然而,我并没有得到一个空指针,它只是抛出一个JSON异常,表示places没有值。当places没有值时,我可以设置什么作为终止条件?我尝试了places==null,但没有成功 try{ JSONArray places = passingObject.getJSONAr

我正在对一个后端进行api调用,该后端总是有一个
JSONArray系列
,有时还有一个
JSONArray位置
。在下面的代码中,我试图编写一个if语句,该语句表示,只要没有
places
array,就发出另一个http请求。然而,我并没有得到一个空指针,它只是抛出一个JSON异常,表示places没有值。当
places
没有值时,我可以设置什么作为终止条件?我尝试了
places==null
,但没有成功

try{
    JSONArray places = passingObject.getJSONArray("places");
    JSONArray series = passingObject.getJSONArray("series");

    if(some condition){
       //do something else
    }
}catch(JSONException e){
    Log.d("JSON EXCEPTION" e.getMessage());
}

检查对象是否具有名为places的键

if (passingObject.has("places") {
    JSONArray places = passingObject.getJSONArray("places");
} else {
    askServerAgain();
}
或者你可以使用


optJSONArray()如果没有这样的键,或者如果它的值不是JSONArray,则返回null。

如果键中包含的空格(如“某些位置”)是键,则它将不起作用。
JSONArray places = passingObject.optJSONArray("places");
if(places == null){...}