3

我正在向总是有 aJSONArray series有时有JSONArray places. 在下面的代码中,我正在尝试编写一个 if 语句,它说,只要没有places数组,就发出另一个 http 请求。但是,我没有得到一个空指针,它只是抛出一个 JSON 异常,说地方没有价值。我可以把什么作为终止条件,因为什么时候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());
}
4

2 回答 2

4

检查对象是否有一个名为 places 的键。

if (passingObject.has("places") {
    JSONArray places = passingObject.getJSONArray("places");
} else {
    askServerAgain();
}
于 2015-09-09T03:12:43.223 回答
2

或者您可以使用 http://www.json.org/javadoc/org/json/JSONObject.html#optJSONArray(java.lang.String)

JSONArray places = passingObject.optJSONArray("places");
if(places == null){...}

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

于 2015-09-09T03:15:15.297 回答