处理 JSONObject 中的 null
Handling null in JSONObject
我的应用程序使用 Eventbrite API,当事件徽标为 null 时它会崩溃。
JSONObject jsonRootObject = new JSONObject(event);
JSONArray jsonArray = jsonRootObject.optJSONArray("events");
JSONObject jsonObject = jsonArray.getJSONObject(i);
information = jsonObject.getJSONObject("logo");
text = information.getString("url");
name = "eventsImage" + i;
resId = getResources().getIdentifier(name, "id", getPackageName());
new LoadImagefromUrl().execute(new LoadImagefromUrlModel(text, resId));
我正在尝试对此事件进行例外处理,但我对 JSONObjects 不是很有经验,而且我不知道 if 语句应该是什么样子
我尝试了以下方法,但没有用
jsonObject.getJSONObject("logo")!=null
它崩溃是因为您试图检索一个不存在的对象。如果对象可能是 null
,您应该使用 jsonObject.optJsonObject("logo")
。
你必须在
中赶上 JSONException
information = jsonObject.getJSONObject("logo");
喜欢
try{
information = jsonObject.getJSONObject("logo");
}catch(JSONException je){
//json object not found
}
看到这个link
这表示 - public JSONObject getJSONObject (String name)
Returns the value mapped by name if it exists and is a JSONObject, or throws otherwise.
或者,您可以像这样使用 optJSONObject
-
if(jsonObject.optJSONObject("logo")!=null)'
因为 optJSONObject
不会抛出异常 returns null
if no key found
我的应用程序使用 Eventbrite API,当事件徽标为 null 时它会崩溃。
JSONObject jsonRootObject = new JSONObject(event);
JSONArray jsonArray = jsonRootObject.optJSONArray("events");
JSONObject jsonObject = jsonArray.getJSONObject(i);
information = jsonObject.getJSONObject("logo");
text = information.getString("url");
name = "eventsImage" + i;
resId = getResources().getIdentifier(name, "id", getPackageName());
new LoadImagefromUrl().execute(new LoadImagefromUrlModel(text, resId));
我正在尝试对此事件进行例外处理,但我对 JSONObjects 不是很有经验,而且我不知道 if 语句应该是什么样子
我尝试了以下方法,但没有用
jsonObject.getJSONObject("logo")!=null
它崩溃是因为您试图检索一个不存在的对象。如果对象可能是 null
,您应该使用 jsonObject.optJsonObject("logo")
。
你必须在
中赶上JSONException
information = jsonObject.getJSONObject("logo");
喜欢
try{
information = jsonObject.getJSONObject("logo");
}catch(JSONException je){
//json object not found
}
看到这个link
这表示 - public JSONObject getJSONObject (String name)
Returns the value mapped by name if it exists and is a JSONObject, or throws otherwise.
或者,您可以像这样使用 optJSONObject
-
if(jsonObject.optJSONObject("logo")!=null)'
因为 optJSONObject
不会抛出异常 returns null
if no key found