You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用RestTemplate将宝可梦接口列表响应解析映射到自定义POJO的方法

问题核心原因

你定义的POJO结构和宝可梦列表接口的实际返回结构不匹配,导致Jackson反序列化失败,无法完成映射,按照以下步骤修改即可实现需求:


1. 定义和接口响应结构匹配的POJO

宝可梦列表接口的标准返回外层包含总数、翻页链接、结果列表三个核心字段,结果列表中每个元素包含宝可梦名称和详情URL,对应POJO定义如下:

// 列表单个条目POJO
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PokemonItem {
    private String name;
    private String url;
}

// 列表外层响应POJO
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AllPokemonsResponse {
    private Integer count;
    private String next;
    private String previous;
    private List<PokemonItem> results;
}

2. 修正Service层调用代码

修改响应类型为上面定义的AllPokemonsResponse,同时可直接通过limit参数一次性获取初代151只宝可梦数据,无需翻页:

//Service Class
public AllPokemonsResponse findAllPokemonsApi() {
    log.info("Find All Pokemon From Api Service Call");
    HttpHeaders headers = new HttpHeaders();
    headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
    // GET请求不需要传body,直接传header即可
    HttpEntity<Void> entity = new HttpEntity<>(headers);
    ResponseEntity<AllPokemonsResponse> response = restTemplate.exchange(
        GET_ALL_POKEMONS_API + "?limit=151",
        HttpMethod.GET, 
        entity, 
        AllPokemonsResponse.class
    );
    return response.getBody();
}

3. 修正Controller层代码

对应修改返回类型即可:

@GetMapping("findAllPokemons/")
public AllPokemonsResponse findAllPokemonsApi() {
    log.info("Get Pokemon From Api Controller Call");
    return pokemonService.findAllPokemonsApi();
}

4. 批量拉取详情存入数据库的实现

拿到列表响应后遍历详情URL调用单查询接口,获取完整宝可梦数据后批量存库即可,示例逻辑:

// 新增Service方法实现存库逻辑
public void batchSave151Pokemons() {
    AllPokemonsResponse listResponse = findAllPokemonsApi();
    List<Pokemon> allPokemons = listResponse.getResults().stream()
        // 复用你之前已经验证可用的单查询映射逻辑
        .map(item -> restTemplate.getForObject(item.getUrl(), Pokemon.class))
        .collect(Collectors.toList());
    // 调用你项目的持久层接口批量保存即可,如JPA的saveAll、MyBatis的批量插入方法
    pokemonDao.saveAll(allPokemons);
}

内容的提问来源于stack exchange,提问作者Gabriel Vendramini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:54:01