这几天在开发基于SpringBoot的Web服务项目的过程中,需要调用第三方接口,然后使用的RestTemplate调用第三方接口,但是返回的数据是类似List<T>这种带泛型的数据。
刚开始是这样写的
@Resource
RestTeplate restTemplate;
List<User> userList = restTemplate.getForObject(url,List.class);
上述方法,因为带泛型,所以返回报错。需要特殊处理一下返回的接口。
FastJson的TypeReference能用来解析泛型数据
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
}
解析数据
@Test
public void testTypeReference(){
String result = "[{\"id\":1,\"name\":\"aa\"},{\"id\":2,\"name\":\"bb\"}]";
List<User> users = JSONObject.parseObject(result, new TypeReference<List<User>>(){});
System.out.println(users);
}
然后就可以用这个改造
@Resource
RestTeplate restTemplate;
String result = restTemplate.getForObject(url,String.class);
List<User> users = JSONObject.parseObject(result, new TypeReference<List<User>>(){});
上述即可解决泛型数据的解析。
文章讲述了在SpringBoot项目中,如何使用RestTemplate调用第三方接口时处理返回的List<T>类型数据,通过FastJson的TypeReference类进行解析,给出了具体的代码示例。
1898

被折叠的 条评论
为什么被折叠?



