本文主要是介绍使用TypeReference解析泛型数据类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这几天在开发基于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;
}
解析数据
@Testpublic 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>>(){});
上述即可解决泛型数据的解析。
这篇关于使用TypeReference解析泛型数据类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!