JSONObject не может быть преобразован в JSONArray в Volley - PullRequest
0 голосов
/ 29 марта 2019

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 не может быть преобразован в JSONArray в Android

1 Ответ

0 голосов
/ 29 марта 2019

вы используете JsonArray в качестве ответа, а ваш веб-сервис возвращает 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
                }
            });
...