Test if it is JSONObject or JSONArray

Something like this should do it:

JSONObject json;
Object     intervention;
JSONArray  interventionJsonArray;
JSONObject interventionObject;

json = RestManager.getJSONfromURL(myuri); // retrieve the entire json stream     
Object intervention = json.get("intervention");
if (intervention instanceof JSONArray) {
    // It's an array
    interventionJsonArray = (JSONArray)intervention;
}
else if (intervention instanceof JSONObject) {
    // It's an object
    interventionObject = (JSONObject)intervention;
}
else {
    // It's something else, like a string or number
}

This has the advantage of getting the property value from the main JSONObject just once. Since getting the property value involves walking a hash tree or similar, that's useful for performance (for what it's worth).


Maybe a check like this?

JSONObject intervention = json.optJSONObject("intervention");

This returns a JSONObject or null if the intervention object is not a JSON object. Next, do this:

JSONArray interventions;
if(intervention == null)
        interventions=jsonObject.optJSONArray("intervention");

This will return you an array if it's a valid JSONArray or else it will give null.