检查解析数组是否包含值

时间:2016-11-01 23:19:49

标签: android arrays parse-platform

我在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

1 个答案:

答案 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)
  返回值   索引是否存在,必要时强制它。