获取嵌套在另一个json对象中的json数组

时间:2019-06-26 08:57:03

标签: java json

我试图从flickr api中循环遍历Java中的照片对象数组,但似乎无法将照片数组作为目标,因为它嵌套在具有页面值的json对象中,如下所示。

{
    "page" : 1,
    "pages" : 10,
    "perpage" : 100,
    "total" : 1000,
    "photo" : [
        {photo objects}
    ]
}

我希望获得照片对象,然后将其传递给照片模型类。

3 个答案:

答案 0 :(得分:0)

我不知道您使用的是哪个库,我个人使用的是GSON,并将基于该库创建示例。

这就是我要做的事情:

if(json.has("photo"){
    JsonArray photoArray = json.get("photo").getAsJsonArray(); //get the full array
    for(int i = 0; i < photoArray.size(); i++){ //loop through all photo objects inside the array
        PhotoObject photoObject = photoArray.get(i);
        //do something with your objects
    }
}

答案 1 :(得分:0)

嘿,您可以尝试这样的事情:

//make the string into a JSONObject
JSONObject obj = new JSONObject("ur Json string"); 

//get the JSONArray from the object
JSONArray array1 = obj.getJSONArray("photo"); 

array1是您的JSON数组。 要获取JSON对象,您可以:

JSONObject photo1 = array1.getJSONObject(0); //get first element in the JSONArray

然后,您可以进行映射以将JSONObject映射到您自己的Photo对象。

引用:

JSONObject-https://developer.android.com/reference/org/json/JSONObject.html

JSONArray-https://developer.android.com/reference/org/json/JSONArray.html

答案 2 :(得分:0)

您可以为此使用两个类,

页面值类

a.css

照相课

public partial class FabriCXHeaderType
  {
      [XmlNamespaceDeclarations()]
      public XmlSerializerNamespaces xmlsn
      {
          get
          {
              XmlSerializerNamespaces xsn = new XmlSerializerNamespaces();
              xsn.Add("h", "http://www.cathaypacific.com/infra/fabricxheader/v2");
              return xsn;
          }
          set
          {
          }
      }
  }

在您的主类中,您可以使用以下代码访问照片对象,

class Response {
    private int page;
    private int pages;
    private int perpage;
    private int total;
    private List<Photo> photo; //List of photo objects

    //getters setters
}