如何使用Retrofit解析json中的嵌套对象?

时间:2018-02-04 17:55:41

标签: android json parsing nested retrofit

这是reddit / r / pic / .json数据。 我想解析预览对象并提取图像URL。

{
"preview": {
"images": [
  {
    "source": {
      "url": "https://i.redditmedia.com/TIqBgNYhZaHMdHN61yUbFPDgDnsFCNkPi6Tb5p2Q-ac.png?s=9ee1ffdf902191de6be14972b7637866",
      "width": 772,
      "height": 762
    },
    "resolutions": [
      {
        "url": "https://i.redditmedia.com/TIqBgNYhZaHMdHN61yUbFPDgDnsFCNkPi6Tb5p2Q-ac.png?fit=crop&crop=faces%2Centropy&arh=2&w=108&s=2d74b9538ff6495f651ce8575baf46b5",
        "width": 108,
        "height": 106
      }
    ]
  }
 ]
}
}

1 个答案:

答案 0 :(得分:0)

您可以为这些字段POJOs

示例:

预览这里是一个对象,但 images 是一个数组/列表。

您可以像这样创建一个源类

class Source {
    private String url;
    private int width;
    private int height;
}

您还可以看到分辨率数组使用与源类相同的键/字段,这样可以更方便地解决

class Images {
    private Source source;
    private List<Soutrce> resolutions;
}

假设你有一个用于解析响应的reddit类,你的预览将是

class Preview {
    private List<Images> images;
    // .. and some more fields if any
}

class Reddit {
    // ...above fields eg: over_18 and approved_by from your example
    private Preview preview;    
}

因此您的图片位于preview.images.get(0 /*position here*/).url;