Ada*_*gyi 144 java android json
所以,我从服务器获取了一些JSON值,但我不知道是否会有特定的字段.
所以喜欢:
{ "regatta_name":"ProbaRegatta",
"country":"Congo",
"status":"invited"
}
Run Code Online (Sandbox Code Playgroud)
有时,会有一个额外的字段,如:
{ "regatta_name":"ProbaRegatta",
"country":"Congo",
"status":"invited",
"club":"somevalue"
}
Run Code Online (Sandbox Code Playgroud)
我想检查名为"club"的字段是否存在,以便在解析时我不会得到org.json.JSONException:没有俱乐部的价值
PX *_*per 247
JSONObject类有一个名为"has"的方法:
http://developer.android.com/reference/org/json/JSONObject.html#has(java.lang.String)
如果此对象具有name的映射,则返回true.映射可以是NULL.
Nir*_*ali 141
您可以通过这种方式检查'HAS' - 如果此对象具有name的映射,则返回true.映射可以是NULL.
if (json.has("status")) {
String status = json.getString("status"));
}
if (json.has("club")) {
String club = json.getString("club"));
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用'isNull'进行检查 - 如果此对象没有名称映射或者其值为NULL,则返回true.
if (!json.isNull("club"))
String club = json.getString("club"));
Run Code Online (Sandbox Code Playgroud)
Bla*_*elt 15
你可以JSONObject#has,提供key输入并检查方法是否返回true或false.你也可以
用optString而不是getString:
返回按名称映射的值(如果存在),必要时强制转换它.如果不存在此类映射,则返回空字符串
在读取之前,请在阅读之前检查它
JSONObject json_obj=new JSONObject(yourjsonstr);
if(!json_obj.isNull("club"))
{
//it's contain value to be read operation
}
else
{
//it's not contain key club or isnull so do this operation here
}
Run Code Online (Sandbox Code Playgroud)
isNull函数定义
Returns true if this object has no mapping for name or
if it has a mapping whose value is NULL.
Run Code Online (Sandbox Code Playgroud)
以下官方文档链接isNull功能
http://developer.android.com/reference/org/json/JSONObject.html#isNull(java.lang.String)
您可以使用 has
public boolean has(String key)
Run Code Online (Sandbox Code Playgroud)
确定JSONObject是否包含特定键.
例
JSONObject JsonObj = new JSONObject(Your_API_STRING); //JSONObject is an unordered collection of name/value pairs
if (JsonObj.has("address")) {
//Checking address Key Present or not
String get_address = JsonObj .getString("address"); // Present Key
}
else {
//Do Your Staff
}
Run Code Online (Sandbox Code Playgroud)
更好的方法,而不是使用条件,如:
if (json.has("club")) {
String club = json.getString("club"));
}
Run Code Online (Sandbox Code Playgroud)
就是简单地使用现有的方法 optString(),如下所示:
String club = json.optString("club);
Run Code Online (Sandbox Code Playgroud)
如果键不存在, optString("key") 方法将返回一个空字符串,因此不会抛出异常。
| 归档时间: |
|
| 查看次数: |
257426 次 |
| 最近记录: |