我需要知道一個對象是否存在於JSON字符串中,並根據該對象的存在情況做不同的事情。如果它不存在,我想省略該對象,因爲它拋出NullPonterException。我試過使用如果但沒有成功......有人能告訴我如何檢查對象的存在?檢查一個對象是否存在於JSON中
預先感謝您!
我需要知道一個對象是否存在於JSON字符串中,並根據該對象的存在情況做不同的事情。如果它不存在,我想省略該對象,因爲它拋出NullPonterException。我試過使用如果但沒有成功......有人能告訴我如何檢查對象的存在?檢查一個對象是否存在於JSON中
預先感謝您!
嘗試類似如下:
String jsonString = yourJsonString;
String nameOfObjectInQuestion = "yourObjectInQuestion";
JSONObject json = null;
JSONObject objectInQuestion = null;
try {
json = new JSONObject(jsonString);
objectInQuestion = json.getJSONObject(nameOfObjectInQuestion);
}
catch (JSONException ignored) {}
if (objectInQuestion == null) {
// Stomp your feet
}
else {
// Clap your hands
}
Philips它的魅力十足!我的問題解決了,但是......有沒有什麼辦法可以得到相同的結果,但是用GSON庫呢?非常感謝你! – 2012-04-08 14:54:21
您可以在一個JSONObjects使用ISNULL()函數。
「布爾ISNULL(字符串名稱)如果這個對象的名字沒有映射或 返回true,如果它有一個映射,其值爲NULL。」
JSONObject contact = venueitem.getJSONObject("contact");
if (contact.isNull("formattedPhone") == false)
venue.phone = contact.getString("formattedPhone");
else
{
...
}
來源: http://developer.android.com/reference/org/json/JSONObject.html#isNull(java.lang.String)
以下行會導致異常。 JSONObject contact = venueitem.getJSONObject(「contact」); – 2015-05-27 13:38:42
或..更簡潔...
myJSONObject.isNull("myfield")?"":myJSONObject.getString("myfield")
使用JSONObject.has(S特林)。
JSONObject MyObject = null;
if(JSONObject.has("ObjectName")){
MyObject = JSONObject.getJSONObject("ObjectName");
}
if(MyObject != null){
// do stuff
}
http://developer.android.com/reference/org/json/JSONObject.html#has(java.lang.String)
不起作用,將打破空值。 – Skynet 2015-06-26 08:00:04
向我們展示你嘗試過的代碼。 – 2012-04-06 21:27:09
顯示代碼,但作爲初學者 - 您是否嘗試過使用opt方法,例如'JSONObject#optJSONObject(String)'或類似的?如果映射不存在而不是異常,它們返回'null'。 – Jens 2012-04-06 21:30:41