lundi 23 février 2015

Consuming rest with spring with nested json



I've followed a tutorialhttp://spring.io/guides/gs/consuming-rest/ to consume a rest service. The tutorial only mentions a single layer JSON file. However i'd like to parse a json like



Foo: {
fooz: 'stringdescripoers}
bar : {
baz: "something",
etc: [[1,2],[2,0]]
},
{another object like bar},
{etc}
}


Having set up the project according tot the turtorial with maven i have the following main class



import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

public class Application {

public static void main(String args[]) {
RestTemplate restTemplate = new RestTemplate();
FeatureCollection collection = restTemplate.getForObject("http://ift.tt/1DNyQAu", FeatureCollection.class);
System.out.println("it worked");
}
}


and my class looks like this.



import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class FeatureCollection {

private String type;

public String getType() {
return type;
}
}


When i run this through spring-boot run i get the following results in my command line:



tons of info,


[INFO] Attaching agents: []
14:54:02.566 [main] DEBUG o.s.web.client.RestTemplate - Created GET request for "http://ift.tt/1DNyQAu"
14:54:02.634 [main] DEBUG o.s.web.client.RestTemplate - Setting request Accept header to [application/json, application/*+json]
14:54:02.719 [main] DEBUG o.s.web.client.RestTemplate - GET request for "http://ift.tt/1DNyQAu" resulted in 200 (OK)
Exception in thread "main" org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class FeatureCollection] and content type [text/plain;charset=UTF-8]
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:108)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:795)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:779)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:559)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:512)
at org.springframework.web.client.RestTemplate.getForEntity(RestTemplate.java:268)
at Application.main(Application.java:13)


Is there something I'm not seeing?


Aucun commentaire:

Enregistrer un commentaire