Android:解析嵌套的JSON数组和JSON对象

时间:2015-04-22 13:08:07

标签: android arrays json wordpress-json-api

我从WordPress网站获得此JSON内容

"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
                    },
          } 
  }  

我想从url获取medium以显示为图片。在提到一些SO问题之后,我已经制作了这段代码并尝试进入循环。但不知怎的,我得到了整个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);
                }

无法弄清楚上面循环中的错误。任何帮助都会很棒。感谢

3 个答案:

答案 0 :(得分:2)

尝试使用此

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

答案 1 :(得分:0)

 jsonarray.getJSONObject(i).
getJSONObject("thumbnail_images").
getJSONObject("medi‌​um").getString("url")


JSONObject jsonObject = new JSONObject(result);
                JSONArray jsonArray = jsonObject.getJSONArray("posts");
                for (int i = 0; i < jsonArray.length(); i++){
                    //JSONObject jsonObject1 = jsonArray.getJSONObject(i).getJSONObject("thumbnail_images");
                    System.out.println("apk----------------"+jsonArray.getJSONObject(i).getJSONObject("thumbnail_images").getJSONObject("medium").getString("url"));
                }

答案 2 :(得分:0)

response = CustomHttpClient.executeHttpGet("http://10.0.0.4:8000/login/?format=json&name="+username.getText().toString()+"&password="+pwd.getText().toString());
      JSONArray jArray=new JSONArray(response);//Json Array
      for(int i=0;i<jArray.length();i++)
      {
      JSONObject json_data = jArray.getJSONObject(i);//Json Array To Json Object
      Jenter code hereSONObject jsonObj2 = json_data.getJSONObject("fields");
      usertype = jsonObj2.getString("usertype");
      email = jsonObj2.getString("email");
      }
      Toast.makeText(getBaseContext(),email, Toast.LENGTH_SHORT).show();