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

就像:

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

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

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

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

jsonexception:没有club的值


当前回答

试试这个:

let json=yourJson

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

其他回答

我只是添加了另一个东西,如果你只是想检查是否在JSONObject中创建了任何东西,你可以使用长度(),因为默认情况下,当JSONObject被初始化时,没有键被插入,它只是有空括号{}和使用has(String key)没有任何意义。

所以你可以直接写if (jsonObject.length() > 0)和做你的事情。

学习快乐!

试试这个

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

试试这个:

let json=yourJson

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

你可以使用jsonnode# hasNonNull(String fieldName),它混合了has方法和验证,如果它是一个空值或不是

你可以这样检查,'HAS' -如果该对象有name的映射,则返回true。映射可能是NULL。

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

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

你也可以使用'isNull'检查-如果该对象没有返回true 如果它有一个值为NULL的映射。

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