我从服务器得到一些JSON值,但我不知道是否会有一个特定的字段。

就像:

{ "regatta_name":"ProbaRegatta",
  "country":"Congo",
  "status":"invited"
}

有时,会有一个额外的字段,比如:

{ "regatta_name":"ProbaRegatta",
  "country":"Congo",
  "status":"invited",
  "club":"somevalue"
}

我想检查名为“俱乐部”的字段是否存在,以便在解析时我不会得到

jsonexception:没有club的值


当前回答

试试这个

if(!jsonObj.isNull("club")){
    jsonObj.getString("club");
}

其他回答

一个更好的方法,而不是使用条件句:

if (json.has("club")) {
    String club = json.getString("club"));
 }

就是简单地使用现有的方法optString(),就像这样:

String club = json.optString("club);

如果键不存在,optString("key")方法将返回空String,因此将抛出异常。

JSONObject类有一个名为"has"的方法:

http://developer.android.com/reference/org/json/JSONObject.html(以)

如果该对象有name的映射,则返回true。映射可能是NULL。

试试这个

if(!jsonObj.isNull("club")){
    jsonObj.getString("club");
}

试试这个:

let json=yourJson

if(json.hasOwnProperty(yourKey)){
    value=json[yourKey]
}

你可以试着检查这个键是否存在:

JSONObject object = new JSONObject(jsonfile);
if (object.containskey("key")) {
  object.get("key");
  //etc. etc.
}