从大型响应对象中检索几个字段
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()
或者只是一个电话对象
我正在调用 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()
或者只是一个电话对象