当前位置: 首页 > 面试题库 >

使用翻新访问JSON数组

公羊光明
2023-03-14
问题内容

我以为我知道该怎么做,但显然不知道。我有Flickr的API,它的开始如下:

jsonFlickrApi({
   "photos":{
      "page":1,
      "pages":10,
      "perpage":100,
      "total":1000,
      "photo":[
         {
            "id":"12567883725",
            "owner":"74574845@N05",
            "secret":"a7431762dd",
            "server":"7458",
            "farm":8,
            "title":"",
            "ispublic":1,
            "isfriend":0,
            "isfamily":0,
            "url_l":"http:\/\/farm8.staticflickr.com\/7458\/12567883725_a7431762dd_b.jpg",
            "height_l":"683",
            "width_l":"1024"
         }

现在我需要获取的信息来自照片阵列,因此我一直在尝试做的是:

interface ArtService {

    @GET("/services/rest/?method=flickr.photos.getRecent&extras=url_l&owner_name&format=json")
    PhotosResponse getPhotos();

    public class PhotosResponse {
        Photos photos;
    }

    public class Photos {
        List<Arraz> photo;
    }

    public class Arraz {
        int id;
        String title;
        String owner;
        String url_l;
    }
}

很清楚,我似乎没有抓住重点,但是我不确定如何获取信息。


问题答案:

快速浏览Retrofit的文档说,它使用Gson将JSON转换为Java类。这意味着您需要Java中与JSON相匹配的类层次结构。你的…没有。

返回的JSON是具有单个字段“ photos”的对象,其中包含一个对象;

{ "photos" : { ... } }

因此,您的顶级类将是具有单个字段的Java类:

public class PhotosResponse {
    private Photos photos;

    // getter/setter
}

Photos类型将是另一个与该字段包含的对象的JSON匹配的类:

{ "page":1, "pages":10, ... }

因此,您将拥有:

public class Photos {
    private int page;
    private int pages;
    private int perpage'
    private int total;
    private List<Photo> photo;

    // getters / setters
}

然后,您将创建一个Photo类以匹配该内部数组中对象的结构。然后,Gson将适当地映射返回的JSON。



 类似资料:
  • 问题内容: 我需要使用Retrofit 2发布JSON对象。我的JSON对象是 {“ logTime”:“”,“ datas”:[{“ dat1”:“ 1”,“ dat2”:“”,“ dat3”:“”,“ dat4”:“”,“ dat5”:“” } ,{“ dat1”:“ 1”,“ dat2”:“”,“ dat3”:“”,“ dat4”:“”,“ dat5”:“” }]} 我尝试使用以下代码: A

  • 问题内容: 我正在尝试使用访存api来带回一些数据,但是一旦检索到它就无法将其映射到控制台。 我得到的错误是 response.map不是函数 所以我试图解析响应(即var data = JSON.parse),该响应不起作用,并显示错误 有趣的是,当对XMLHttp请求执行相同操作时,需要解析它,因此我也想知道为什么这两种检索数据方法之间的区别。 如果有人能指出正确的方向,我将不胜感激。 问题答

  • 问题内容: 如果通过网络服务获得以下数据: 我如何访问第二个col1? 如下: 给我: 问题答案: 它是一个包含2个元素的数组,其中包含和,所以类似: (是第一个元素,然后选择“ col1”)

  • 问题内容: 使用新引入的JSON_VALUE函数访问json内的数组时,我陷入了困境。请考虑以下代码- 在这里,如果我想访问特定的电话号码,则访问该节点的常规语法不起作用。在这种情况下,我遇到以下错误 虽然当我在http://jsonpath.com上进行检查时,却能够检索值。SQL Server 2016是否使用某些不同的语法来访问JSON值? 问题答案: 要从phoneNumbers获取全部信

  • 问题内容: 我正在尝试使用angular.js,hammer.js和topcoat制作和移动webapp。 我在显示像这样的Json文件中的数据时遇到了一些麻烦: 我的js文件是这样的: 我的HTML文件是这样的: 我想显示所有专辑,并且如果我的用户选择特定的艺术家,我想过滤那些专辑。 这里的问题是如何在此嵌套json上进行选择。顺便说一句,artist.name显示正确。 第二个问题是,如何过滤

  • 问题内容: 我正在使用jQuery 1.4.2创建ajax应用,并且尝试使用get(),post()和ajax()方法本身。我的php服务返回: 在我的成功回调中,我尝试以json.status和json [0] [0]的身份访问,但它始终返回“ undefined”。我究竟做错了什么? 我已经搜索了好几天了。我该如何访问返回的数据?任何帮助,将不胜感激。 问题答案: 要访问该状态值,您需要: 这