这几天在开发基于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>>(){});
上述即可解决泛型数据的解析。