Search code examples
androidarraysjsonwordpress-json-api

Android: Parse the Nested JSON Array and JSON Object


I have this JSON content from a WordPress Site

"posts": [
 {

    "id": 67986,
    "type": "post",
    "title": "Launching New eBooks",
    "thumbnail_images": {
           "full": {
                  "url": "http://www.marineinsight.com/wp-content/uploads/2015/04/boiler-featured.png",
                  "width": 700,
                  "height": 500
                   },

           "medium": {
                   "url": "http://www.marineinsight.com/wp-content/uploads/2015/04/boiler-featured-300x214.png",
                   "width": 300,
                   "height": 214
                    },
          } 
  }  

I want to fetch the url from medium to display as image. After referring to some SO questions, I have made this code and tried to go into the loop. But somehow i get the entire thumbnail_images

JSONObject jsono = new JSONObject(data);
                jarray = jsono.getJSONArray("posts");

                for (int i = 0; i < jarray.length(); i++) {
                    JSONObject object = jarray.getJSONObject(i);
                    JSONArray bigImage = object.getJSONArray("thumbnail_images");
                    for (int j = 0; j < bigImage.length(); j++) {
                        JSONObject tiObj = bigImage.getJSONObject(j);
                        JSONArray tiMed = tiObj.getJSONArray("medium");
                        for (int k = 0; k < tiMed.length(); k++) {
                            JSONObject tiMedU = tiMed.getJSONObject(i);
                           String imageURL = tiMedU.getString("url");

                        }

                    }


                    actor = new Actors();

                    actor.setName(object.getString("title"));
                    actor.setDescription(object.getString("url"));
                    actor.setImage(imageURL);
                    actor.setDob(object.getString("content"));

                    actorsList.add(actor);
                }

Not able to figure out whats wrong in the loops above. Any help wld be great. Thanks


Solution

  • Try to use this

     JSONObject jsono = new JSONObject(data);
                jarray = jsono.getJSONArray("posts");
    
                for (int i = 0; i < jarray.length(); i++) {
                     JSONObject object = jarray.getJSONObject(i);
                        JSONObject bigImage = object.getJSONObject("thumbnail_images");
                        JSONObject tiMed = bigImage.getJSONObject("medium");
                        String imageURL = tiMed.getString("url");
                        }
    
                    }
    
    
                    actor = new Actors();
    
                    actor.setName(object.getString("title"));
                    actor.setDescription(object.getString("url"));
                    actor.setImage(imageURL);
                    actor.setDob(object.getString("content"));
    
                    actorsList.add(actor);
                }