检查解析数组是否包含值 android

Check if Parse Array contain value android

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

删除此行

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)
Returns the value at index if it exists, coercing it if necessary.