Reputation: 3349
I'm making api calls to a back-end who always has a JSONArray series
and sometimes has a JSONArray places
. In the code below, I am trying to write an if statement that says, whenever there is no places
array, make another http request. However, I am not getting a nullpointer, it just throws a JSON Exception saying there is no value for places. What can I put as the terminating condition, for when places
has no value? I have tried places == null
and that hasn't worked.
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());
}
Upvotes: 3
Views: 8396
Reputation: 14731
Or you can use http://www.json.org/javadoc/org/json/JSONObject.html#optJSONArray(java.lang.String)
JSONArray places = passingObject.optJSONArray("places");
if(places == null){...}
optJSONArray();
It returns null if there is no such key, or if its value is not a JSONArray.
Upvotes: 2
Reputation: 2242
Check if the object has a key called places.
if (passingObject.has("places") {
JSONArray places = passingObject.getJSONArray("places");
} else {
askServerAgain();
}
Upvotes: 4