问题
所以,我从服务器获取了一些JSON值,但我不知道是否会有特定的字段。
所以喜欢:
{ "regatta_name":"ProbaRegatta",
"country":"Congo",
"status":"invited"
}
有时,会有一个额外的字段,如:
{ "regatta_name":"ProbaRegatta",
"country":"Congo",
"status":"invited",
"club":"somevalue"
}
我想检查名为"club"的字段是否存在,以便在解析时我不会得到org.json.JSONException:没有值为俱乐部
#1 热门回答(191 赞)
JSONObject类有一个名为"has"的方法:
http://developer.android.com/reference/org/json/JSONObject.html#has(java.lang.String)>如果此对象具有name的映射,则返回true。映射可以是NULL。
#2 热门回答(116 赞)
你可以通过这种方式检查'HAS' - 如果此对象具有name的映射,则返回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"));
#3 热门回答(11 赞)
你可以JSONObject#has
,提供key
输入并检查方法是否返回true
或false
。你也可以
useoptString
不是getString
:
返回按名称映射的值(如果存在),必要时强制转换它。如果不存在此类映射,则返回空字符串