如何从android访问数组内部的json数组

时间:2014-02-10 06:19:17

标签: android arrays json

我的数组是

{
   newsitem [ 
              {"headline":"hello","caption":"date",

                  "image":{"photo":"img","thumb":"thumbnail"}
             }
            ]
}

我想使用jsonobject和jsonarray访问照片和拇指。我可以访问标题和标题。

这是我用来获取标题的代码。帮我拍照和拇指。

JSONObject obj = new JSONObject(retstring);
                JSONArray ja = obj.getJSONArray("NewsItem"); 

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

                    JSONObject jo = (JSONObject) ja.get(i);


String h=jo.getString("HeadLine");

}

4 个答案:

答案 0 :(得分:3)

您可以尝试以下示例:

  JSONObject new_jo = jo.getJSONObject("image");
  String pic = new_jo.getString("photo");
  String thumbnail = new_jo.getString("thumb");

答案 1 :(得分:2)

你错了。 图片代码不是JsonArray。它是JsonObject。所以使用这个。

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

  JSONObject jo = (JSONObject) ja.get(i);

  String headline =jo.getString("HeadLine");

  JSONObject jsonimage=jo.optJSONObject("image");


  String str_photo=jsonimage.optString("photo");

 }

答案 2 :(得分:1)

imageJSONObject而不是JSONArray,因此您可以将photothumb值视为:

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

JSONObject jo = (JSONObject) ja.get(i);

  String h=jo.getString("HeadLine");
  // get image JSONObject from jo
  JSONObject jsonimage=jo.optJSONObject("image");

  // get photo anf thumb values from jsonimage jsobobject
   String str_photo=jsonimage.optString(photo);
   ...
}

答案 3 :(得分:0)

Follow these steps in order to parse the json
1) Create JSONObject for getting the result string.
2) Create JSONArray for getting array from "newsitem" tag
3) Create JSONObject for 
   3.1) headline tag
   3.2) caption tag
   3.3) image tag
4) Create again JSONObject for
   4.1) photo tag
   4.2) thumb tag


Now how to achieve this

 JSONObject jsonObj=new JSONObject(jsonstring);
 JSONArray newsItemObj=jsonObj.getJSONArray("newitem");

for(int i=0;i<newsItemObj.length();i++)
{
   String headline=newsItemObj.getString("headline");
   String caption=newsItemObj.getString("caption");

   JSONObject imageObject=newsItemObj.getJSONObject("image");

    String photo=imageObject.getString("photo");
    String thumb=imageObject.getString("thumb");

}