【问题标题】:Check if JSONObject key exists检查 JSONObject 键是否存在
【发布时间】:2015-12-04 21:03:34
【问题描述】:

我正在向总是有JSONArray series 并且有时有JSONArray places 的后端进行api 调用。在下面的代码中,我试图编写一个 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());
}

【问题讨论】:

    标签: android json jsonexception


    【解决方案1】:

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

    if (passingObject.has("places") {
        JSONArray places = passingObject.getJSONArray("places");
    } else {
        askServerAgain();
    }
    

    【讨论】:

    • 如果像“某些地方”这样的键中包含的空间是键,它将不起作用。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2012-09-08
      • 1970-01-01
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多