JSONObject 无法在 Volley 中转换为 JSONArray

JSONObject cannot be converted to JSONArray in Volley

here_is_json_api

还有我的代码

 ArrayRequest = new JsonArrayRequest(JSON_URL, new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray response) {

                JSONObject jsonObject = null;

                for (int i = 0 ; i<response.length();i++) {

                    try {
                       // JSONObject jsonObject = (JSONObject) response.get(i);
                       jsonObject = response.getJSONObject(i);
                        JSONObject jsonObjectt = jsonObject.getJSONObject("search_result");
                        Users users = new Users();
                        users.setId(jsonObjectt.getString("id"));
                        users.setUser(jsonObjectt.getString("User"));
                        users.setName(jsonObjectt.getString("name"));
                        users.setWho(jsonObjectt.getString("who"));
                        users.setImage(jsonObjectt.getString("image"));
                        userlist.add(users);
                    }
                    catch (JSONException e) {
                        e.printStackTrace();
                    }
                }

                setRvadapter(userlist);

我无法从 api 获取任何数据,它说 JSONObject 无法在 android

中转换为 JSONArray

您正在使用 JsonArray 作为响应并且您的 Web 服务 return 是一个 jsonobject

new JsonObjectRequest
                (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                        JSONArray teachers = response.getJSONArray("search_result");
                        for(int i = 0; i < teachers.length() ; i++) {
                            // do what ever you want with
                            Teacher teacher = new Teacher();
                            // here is how to get name
                            teacher.setId(teachers.getJSONObject(i).getString("name"));
                            // do the rest like this.
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    // TODO: Handle error
                }
            });