我需要知道一个对象是否存在于 JSON 字符串中,并根据该对象的存在做不同的事情。如果它不存在,我想省略该对象,因为它会抛出 NullPonterException。我试过使用if但没有成功...有人可以告诉我如何检查对象的存在吗?
先感谢您!
我需要知道一个对象是否存在于 JSON 字符串中,并根据该对象的存在做不同的事情。如果它不存在,我想省略该对象,因为它会抛出 NullPonterException。我试过使用if但没有成功...有人可以告诉我如何检查对象的存在吗?
先感谢您!
尝试以下操作:
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
}
您可以在 JSONObjects 上使用 isNull() 函数。
"boolean isNull(String name) 如果此对象没有 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)
使用 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)
或者..更简洁...
myJSONObject.isNull("myfield")?"":myJSONObject.getString("myfield")