RestTemplate并访问json

时间:2014-07-12 13:21:29

标签: json spring jackson resttemplate

我已经看过许多其他帖子的回复,但想了解是否有更好的方法来做同样的事情。

要求: - 我正在使用restTemplate与Web服务进行通信,该服务返回动态的JSON输出。作为消费者,我不想访问所有领域,但对其中的一些领域感兴趣。我正在使用Spring框架和Jackson解析器,并找到了访问它的方式

     String  response = restTemplate.getForObject(targetUrl, String.class);
     System.out.println(response);
     ObjectMapper mapper = new ObjectMapper();
     JsonNode rootNode = mapper.readValue(response, JsonNode.class);
     JsonNode uri = rootNode.get("uri");
     System.out.println(uri.asText());

你知道更好的方法吗?映射到java Object是我不想做的事情,因为json输出不在我的控件中

1 个答案:

答案 0 :(得分:2)

如果RestTemplate配置了HttpMessageConverters提供的默认 Jackson2ObjectMapperBuilder,您可以直接从JsonNode获取restTemplate.getForObject {1}}。

例如,

ArrayNode resources = restTemplate.getForObject("/resources", ArrayNode.class);

或者,

ObjectNode resource = restTemplate.getForObject("/resources/123", ObjectNode.class);

请注意,ArrayNodeObjectNodeJsonNode的子类。