问题描述
我正在调用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]
}
解决方法
您可以将响应JSON解析为JsonNode。
ObjectMapper映射器= new ObjectMapper(); JsonNode jsonNode = mapper.readTree(“ [在这里输入您的JSON]”)); 之后,仅获取您需要的字段。例如:
jsonNode.get(“ request”)。get(“ phones”)。get(“ type”)。asText()
或只是一个电话对象
,您应该可以执行以下操作。这里的“用户”是 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());
}
}