PDA

View Full Version : [PROBLEM SPRING ANDROID] deserialize object



hkadejo
Feb 22nd, 2011, 08:11 PM
my code



String url = "http://github.com/api/v2/json/repos/show/schacon/";

HttpHeaders requestHeaders = new HttpHeaders();

List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();

acceptableMediaTypes.add(MediaType.APPLICATION_JSO N);

requestHeaders.setAccept(acceptableMediaTypes);



HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders);

RestTemplate restTemplate = new RestTemplate();

ResponseEntity<Repositorie[]> responseEntity = restTemplate.exchange(url,
HttpMethod.GET, requestEntity, Repositorie[].class);


the error



02-23 00:59:22.815: ERROR/AndroidRuntime(433): Caused by: org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of com.androidnauta.Repositorie[] out of START_OBJECT token


Help Me! Please :(

dutchman_mn
Feb 23rd, 2011, 12:12 PM
Looking at the raw JSON response from: http://github.com/api/v2/json/repos/show/schacon your code should look like this:



ResponseEntity<Repositories> responseEntity = restTemplate.exchange("http://github.com/api/v2/json/repos/show/schacon/",
HttpMethod.GET,
new HttpEntity<String>(headers),
Repositories.class);

Repositories repository = (Repositories) responseEntity.getBody();


The <i>Repositories</i> would look like this:



public class Repositories {
private ArrayList<Repository> repositories;

public ArrayList<Repository> getRepositories() {
return repositories;
}

public void setRepositories(ArrayList<Repository> repositories) {
this.repositories = repositories;
}
}


and the <i>Respository</i> object would contain values such as watchers, language, etc.