【问题标题】:Retrieving a few fields from large response object从大型响应对象中检索一些字段
【发布时间】:2020-09-25 19:02:34
【问题描述】:

我正在调用 Google Directory API,并且只需要它返回的几个字段。我对 Java/Spring 相当陌生,所以我试图找出解决这个问题的最佳方法。我提出这样的要求:

restTemplate.exchange(url, HttpMethod.GET, req, Object, userKey);

我目前将它作为一个对象,但不确定这是否正确。当我只需要几个字段时,我不想映射出它返回的非常大的对象。有没有办法访问这些字段,phone, organizations, locations

res.getClass().getField("phones") 对我不起作用。

出于目的,我们可以考虑对象的形状:

{ 
    phones: [type: String, number: String], 
    organizations: [title: String], 
    locations: [buildingId: String]  
}

【问题讨论】:

    标签: java spring google-directory-api


    【解决方案1】:

    您可以将响应 JSON 解析为 JsonNode。

    ObjectMapper 映射器 = new ObjectMapper(); JsonNode jsonNode = mapper.readTree("[你的 JSON 在这里]"); 之后只获取您需要的字段。例如:

    jsonNode.get("request").get("phones").get("type").asText()

    或者只是一个手机对象

    【讨论】:

      【解决方案2】:

      您应该能够执行以下操作。这里的“用户”是 com.google.api.services.admin.directory.model.User

          List<User> users = result.getUsers();
          if (users == null || users.size() == 0) {
              System.out.println("No users found.");
          } else {
              System.out.println("Users:");
              for (User user : users) {
                  System.out.println(user.getName().getFullName());
              }
          }
      

      【讨论】:

      • 我找不到这个包。我要向 build.gradle 添加什么?
      猜你喜欢
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多