如何检查 JSON 密钥是否存在?

2022-08-31 06:05:58

因此,我从服务器获取了一些JSON值,但我不知道是否会有特定的字段。

所以像:

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

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

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

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

org.json.JSONException: 没有俱乐部的价值


答案 1

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

http://developer.android.com/reference/org/json/JSONObject.html#has(java.lang.String)

如果此对象具有 name 的映射,则返回 true。映射可能为 NULL。


答案 2

您可以通过这种方式检查“HAS” - 如果此对象具有名称映射,则返回 true。映射可能为 NULL。

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

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

您还可以使用'isNull'进行检查 - 如果此对象没有名称映射或具有值为 NULL 的映射,则返回 true。

if (!json.isNull("club"))
    String club = json.getString("club"));