我需要知道JSON字符串中是否存在对象,并根据该对象的存在执行不同的操作。如果它不存在,我想省略该对象,因为它抛出NullPonterException。我尝试使用 if 但没有成功......有人能告诉我如何检查对象是否存在?
提前谢谢!
答案 0 :(得分:14)
尝试以下内容:
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
}
答案 1 :(得分:4)
您可以在JSONObjects上使用isNull()函数。
“boolean isNull(String name) 如果此对象没有名称映射或者其值为NULL的映射,则返回true。“
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)
答案 2 :(得分:2)
使用JSONObject.has(String)。
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)
答案 3 :(得分:1)
或者......更简洁......
myJSONObject.isNull("myfield")?"":myJSONObject.getString("myfield")