Could not read JSON: Can not deserialize instance of hello.Country[] out of START_OBJECT token

前端 未结 5 1155
攒了一身酷
攒了一身酷 2020-12-13 18:05

I have rest url that gives me all countries - http://api.geonames.org/countryInfoJSON?username=volodiaL.

I use RestTemplate from spring 3 to parse returned json into

5条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-13 18:24

    You need to do the following:

    public class CountryInfoResponse {
    
       @JsonProperty("geonames")
       private List countries; 
    
       //getter - setter
    }
    
    RestTemplate restTemplate = new RestTemplate();
    List countries = restTemplate.getForObject("http://api.geonames.org/countryInfoJSON?username=volodiaL",CountryInfoResponse.class).getCountries();
    

    It would be great if you could use some kind of annotation to allow you to skip levels, but it's not yet possible (see this and this)

提交回复
热议问题