Umar Saleem
Umar Saleem

Reputation: 137

JSON Array Request Parsing error using Volley Library

I'm working on a news application with api from newsapi.org. I'm using volley library for making JSONArrayRequest and getting data. I'm trying to get my head around json array and json object to understand the parsing. Unfortunately, I'm unable to parse the response. It always calls OnErrorResponse where the response is the json data. Can someone guide me how can I parse the response?

Response: Response

URL to site:

  https://newsapi.org/docs/endpoints/sources

Parsing:

   public void jsoncall() {

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

            JSONObject jsonObject;
            Log.d("OnResponse", "" + response);

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

                try {

                    jsonObject = response.getJSONObject(i);
                    JSONArray jsonArray = jsonObject.getJSONArray("sources");
                    JSONObject jsonObject1 = jsonArray.getJSONObject(i);

                    Toast.makeText(getActivity(), "" + jsonObject1.getString("name"), Toast.LENGTH_SHORT).show();

                    //Toast.makeText(MainActivity.this,anime.toString(),Toast.LENGTH_SHORT).show();
                    lstAnime.add(anime);*/
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }


            Toast.makeText(getActivity(), "Size of Liste " + String.valueOf(lstAnime.size()), Toast.LENGTH_SHORT).show();
            Toast.makeText(getActivity(), lstAnime.get(1).toString(), Toast.LENGTH_SHORT).show();

            setRvadapter(lstAnime);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

            Log.d("OnErrorResponse",""+error.toString());

        }
    });


    requestQueue = Volley.newRequestQueue(Objects.requireNonNull(getActivity()));
    requestQueue.add(arrayRequest);
}

Upvotes: 0

Views: 367

Answers (1)

user35398
user35398

Reputation: 68

dear you are receiving JSONObject include "status" and "sources". I suggest to call JsonObjectRequest Then parse your response to get JSONArray "sources" :response.getJSONArray("sources");

Upvotes: 1

Related Questions