从大型响应对象中检索几个字段

Retrieving a few fields from large response object

我正在调用 Google 目录 API,只需要它返回的几个字段。我对 Java/Spring 还很陌生,所以我想找出解决这个问题的最佳方法。我这样提出要求:

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

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

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

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

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

您应该可以执行如下操作。这里的“用户”是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());
        }
    }

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

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

jsonNode.get("请求").get("手机").get("类型").asText()

或者只是一个电话对象