0

I'm beginner in Android.
I want to parse this JSON:

{
  "data": [
    {
      "type": "gif",
      "id": "12HZukMBlutpoQ",
      "slug": "funny-cat-12HZukMBlutpoQ",
      "url": "http://giphy.com/gifs/funny-cat-12HZukMBlutpoQ",
      "bitly_gif_url": "http://gph.is/2cxnEkM",
      "bitly_url": "http://gph.is/2cxnEkM",
      "embed_url": "http://giphy.com/embed/12HZukMBlutpoQ",
      "username": "",
      "source": "http://www.thehollywoodgossip.com/gallery/funny-cat-gif/",
      "rating": "g",
      "content_url": "",
      "source_tld": "www.thehollywoodgossip.com",
      "source_post_url": "http://www.thehollywoodgossip.com/gallery/funny-cat-gif/",
      "is_indexable": 0,
      "import_datetime": "2016-09-22 23:33:27",
      "trending_datetime": "0000-00-00 00:00:00",
      "images": {
        "fixed_height": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/200.gif",
          "width": "267",
          "height": "200",
          "size": "65195",
          "mp4": "http://media2.giphy.com/media/12HZukMBlutpoQ/200.mp4",
          "mp4_size": "11912",
          "webp": "http://media2.giphy.com/media/12HZukMBlutpoQ/200.webp",
          "webp_size": "13488"
        },
        "fixed_height_still": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/200_s.gif",
          "width": "267",
          "height": "200",
          "size": "32907"
        },
        "fixed_height_downsampled": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/200_d.gif",
          "width": "267",
          "height": "200",
          "size": "65195",
          "webp": "http://media2.giphy.com/media/12HZukMBlutpoQ/200_d.webp",
          "webp_size": "13488"
        },
        "fixed_width": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/200w.gif",
          "width": "200",
          "height": "150",
          "size": "40178",
          "mp4": "http://media2.giphy.com/media/12HZukMBlutpoQ/200w.mp4",
          "mp4_size": "8388",
          "webp": "http://media2.giphy.com/media/12HZukMBlutpoQ/200w.webp",
          "webp_size": "9344"
        },
        "fixed_width_still": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/200w_s.gif",
          "width": "200",
          "height": "150",
          "size": "20471"
        },
        "fixed_width_downsampled": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/200w_d.gif",
          "width": "200",
          "height": "150",
          "size": "40178",
          "webp": "http://media2.giphy.com/media/12HZukMBlutpoQ/200w_d.webp",
          "webp_size": "9344"
        },
        "fixed_height_small": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/100.gif",
          "width": "134",
          "height": "100",
          "size": "20730",
          "mp4": "http://media2.giphy.com/media/12HZukMBlutpoQ/100.mp4",
          "mp4_size": "5524",
          "webp": "http://media2.giphy.com/media/12HZukMBlutpoQ/100.webp",
          "webp_size": "5448"
        },
        "fixed_height_small_still": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/100_s.gif",
          "width": "134",
          "height": "100",
          "size": "10727"
        },
        "fixed_width_small": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/100w.gif",
          "width": "100",
          "height": "75",
          "size": "13041",
          "mp4": "http://media2.giphy.com/media/12HZukMBlutpoQ/100w.mp4",
          "mp4_size": "4006",
          "webp": "http://media2.giphy.com/media/12HZukMBlutpoQ/100w.webp",
          "webp_size": "3812"
        },
        "fixed_width_small_still": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/100w_s.gif",
          "width": "100",
          "height": "75",
          "size": "6936"
        },
        "downsized": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy-downsized.gif",
          "width": "340",
          "height": "255",
          "size": "96830"
        },
        "downsized_still": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy-downsized_s.gif",
          "width": "340",
          "height": "255",
          "size": "48519"
        },
        "downsized_large": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy.gif",
          "width": "340",
          "height": "255",
          "size": "96830"
        },
        "downsized_medium": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy.gif",
          "width": "340",
          "height": "255",
          "size": "96830"
        },
        "original": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy.gif",
          "width": "340",
          "height": "255",
          "size": "96830",
          "frames": "2",
          "mp4": "http://media1.giphy.com/media/12HZukMBlutpoQ/giphy.mp4",
          "mp4_size": "27204",
          "webp": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy.webp",
          "webp_size": "20654",
          "hash": "046bc516e30618ec167ca9d717174341"
        },
        "original_still": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy_s.gif",
          "width": "340",
          "height": "255",
          "size": "48519"
        },
        "looping": {
          "mp4": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy-loop.mp4",
          "mp4_size": "692089"
        },
        "original_mp4": {
          "mp4": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy.mp4",
          "mp4_size": "27204",
          "width": "480",
          "height": "360"
        },
        "preview": {
          "mp4": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy-preview.mp4",
          "mp4_size": "17834",
          "width": "340",
          "height": "254"
        },
        "downsized_small": {
          "mp4": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy-downsized-small.mp4",
          "mp4_size": "17834"
        },
        "preview_gif": {
          "url": "http://media2.giphy.com/media/12HZukMBlutpoQ/giphy-preview.gif",
          "width": "267",
          "height": "200",
          "size": "49366"
        }
      }
    }
  ],
  "meta": {
    "status": 200,
    "msg": "OK",
    "response_id": "58bd894bafa0a7041e457b68"
  },
  "pagination": {
    "total_count": 6884,
    "count": 25,
    "offset": 0
  }
}

I want only the rating, fixed_height, pagination objects.
My code is:

        JsonArrayRequest req = new JsonArrayRequest(endpoint,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    Log.d(TAG, response.toString());
                    pDialog.hide();

                    images.clear();
                    for (int i = 0; i < response.length(); i++) {
                        try {
                            JSONObject object = response.getJSONObject(i);
                            Image image = new Image();
                            image.setName(object.getString("name"));

                            JSONObject url = object.getJSONObject("url");
                            image.setSmall(url.getString("small"));
                            image.setMedium(url.getString("medium"));
                            image.setLarge(url.getString("large"));
                            image.setTimestamp(object.getString("timestamp"));

                            images.add(image);

                        } catch (JSONException e) {
                            Log.e(TAG, "Json parsing error: " + e.getMessage());
                        }
                    }

                    mAdapter.notifyDataSetChanged();
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Error: " + error.getMessage());
            pDialog.hide();
        }
    });

    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(req);

I don't know what exactly do so that only two objects will pass (in this code my json is here.

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Prashant Godhani
  • 337
  • 1
  • 4
  • 15

1 Answers1

0

This is an object, not an array.

{
  "data": [
    {

You therefore cannot use JsonArrayRequest, and must use JsonObjectRequest.

From, that, you may getJSONArray("data") and loop over that to get your "rating" key, for example through getJSONObject(i)

OneCricketeer
  • 179,855
  • 19
  • 132
  • 245