RestTemplate - 包含集合的对象

时间:2015-04-24 13:10:33

标签: spring resttemplate

我在使用RestTemplate从ombdapi检索响应时遇到问题。我读这个没问题(通过id获得1部电影) http://www.omdbapi.com/?i=tt0903624但是从集合中读取(搜索时),我不知道该怎么做:http://www.omdbapi.com/?s=hobbit

我认为问题可能是搜索:部分,因为这不仅仅是一个数组(如本例http://thespringway.info/spring-web/map-to-list-of-objects-from-json-array-with-resttemplate/中所示)。以下行是问题所在:

ResponseEntity<OmdbMovie[]> responseEntity = restTemplate.getForEntity("http://www.omdbapi.com/?s=" + title, OmdbMovie[].class);

并抛出无法从START_OBJECT标记中反序列化ba.codecentric.excelimdb.OmdbMovie []的实例

1 个答案:

答案 0 :(得分:0)

您需要在http://www.omdbapi.com/?s=hobbit中解析与JSON类似的结构。

以上网址的结果为:

  1. 一个对象:以'{'
  2. 开头
  3. 有一个属性:'搜索'
  4. 包含一系列电影: [{},{},...]
  5. 例如,您可以编写此类:

    public class OmdbMovieList {
       private List<OmdbMovie> search;
       .....
    }
    

    然后使用:

    ResponseEntity<OmdbMovieList> responseEntity = restTemplate.getForEntity("http://www.omdbapi.com/?s=" + title, OmdbMovieList.class);