2017-03-06 90 views
0

我是Android的初學者。
我要分析此JSON:如何使用Volley解析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 
    } 
} 

我只想要ratingfixed_heightpagination對象。
我的代碼是:

 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); 

我不知道究竟是什麼使得只有兩個對象將通過(在此代碼的json是here

+0

如果你想'parse' json檢查此鏈接https://futurestud.io/tutorials/gson-mapping-of - 陣列和對象列表 – user5599807

+0

我試過了,但我不明白如何把它放在我的代碼..plz幫助我.. –

+0

排氣不解析任何東西。你自己解析Volley給你的'JSONObject' –

回答

0

這是一個對象,而不是一個數組。

{ 
    "data": [ 
    { 

因此,您無法使用JsonArrayRequest,並且必須使用JsonObjectRequest

FRO米,那麼,你可能getJSONArray("data")和循環,以獲得您的"rating"密鑰,例如通過getJSONObject(i)