我在android中使用Parse。我试图检查数组是否包含值(ObjectId)。
private void getCurrentObject() {
query = ParseQuery.getQuery("Group");
query.getInBackground(objectid, new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
object = all;
if (e == null) {
if (userexists(object.getJSONArray("members_array"), currentUser.getObjectId())) {
Toast.makeText(GroupActivity.this, "isDo", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(GroupActivity.this, "isNot", Toast.LENGTH_SHORT).show();
}
}
}
});
}
private boolean userexists(JSONArray jsonArray, String usernameToFind) {
return jsonArray.toString().contains(usernameToFind);
}
运行应用程序时出现此错误
"java.lang.NullPointerException: Attempt to invoke virtual method 'org.json.JSONArray com.parse.ParseObject.getJSONArray(java.lang.String)' on a null object reference
答案 0 :(得分:0)
删除此行
object = all;
或者,您可能意味着all = object
然后,你需要遍历JSONArray,而不是toString
。
private boolean userexists(JSONArray jsonArray, String usernameToFind) {
if (jsonArray == null) return false;
for (int i = 0; i < jsonArray.length(); i++) {
String s = jsonArray.optString(i, "");
if (s.equals(usernameToFind)) return true;
}
return false;
}
使用此方法
String optString(int index, String fallback)
返回值 索引是否存在,必要时强制它。