我刚刚开始了新项目。
我的后端客户端从外部API获取json,将其包装到正确的模型,然后前端可以获取此转换后的数据。
我的问题是我收到了这种json格式:
{
"page": 1,
"total_results": 52,
"total_pages": 3,
"results": [
{
{Movie1 data}
{Movie2 data}
{Movie3 data}
...
}
]
}
我想只获取电影数据,所以我创建了电影模型,但它不能反序列化它。
这是我的代码:
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
String resourceURL = url;
HttpEntity<String> entity = new HttpEntity<String>(headers);
ResponseEntity<Movie[]> response = restTemplate.exchange(resourceURL, HttpMethod.GET, entity, Movie[].class);
if (response.getStatusCode() == HttpStatus.OK) {
for (Movie movie : response.getBody()) {
System.out.println(movie.originalTitle);
}
}
else
{
System.out.println("Error");
}
我如何从结果数组中获取数据? Greetnigs Bartek
你需要创建一个匹配你的json的pojo。目前,您正在尝试将您的json与Movie []匹配,这是不正确的。 试试这个
@JsonIgnoreProperties(ignoreUnknown = true)
class MovieResult {
List<Movie> results;
//Getters and Setters
}
@JsonIgnoreProperties(ignoreUnknown = true)
class Movie {
//Getters and Setters
}
ResponseEntity<MovieResult> response = restTemplate.exchange(resourceURL, HttpMethod.GET, entity, MovieResult.class);
MovieResult movieResult = response.getBody();
List<Movie> movies = movieresult.getResults();