RestTemplate and acessing json

jackson, json, resttemplate, spring

Solution

If your `RestTemplate` is configured with the default `HttpMessageConverters`, which is provided by `Jackson2ObjectMapperBuilder`, you may directly get a `JsonNode` from `restTemplate.getForObject`.

For example,

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

Or,

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

Note that `ArrayNode` and `ObjectNode` are sub-classes of `JsonNode`.

Problem

I have seen the responses from many other posts but would like to understand if there is a better way to do the same thing. Requirement:- I am using restTemplate to talk to web service which returns JSON output which is dynamic. As a consumer I don't want to access all fields but is interested in few of them. I am using Spring framework with Jackson parser and found the way of accessing it ``` 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()); ``` Do you know any better way to do it? Mapping to java Object is something that I dont want to do as the json output is not in my control

Original source

Related problems