我的方法:
方法一:用数组接收(泛型,针对list<T>,T为自定义实体类)
T_ORDER[] allOrder = restTemplate.getForObject(PREFIX+"/buyer/order/getOrdersByBuyerID?buyerid="+id,T_ORDER[].class);
方法二:使用阿里的fastjson(泛型,针对list<T>,T为自定义实体类)
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
List test = restTemplate.getForObject(PREFIX+"/buyer/order/getOrdersByBuyerID?buyerid="+id,List.class);
for(Object t:test){
T_ORDER t_order=JSONObject.parseObject(JSON.toJSONString(t),T_ORDER.class);
}
如果是接收List<String>,可以使用:
List<String> allOrder = restTemplate.getForObject(PREFIX + "/buyer/order/getAllCartLists?buyerid=" + id, List.class);
int index=0;
String[] ttBook=new String[allOrder.size()];
for(int k=0;k<allOrder.size();k++){
boolean flag=true;
String s = JSONObject.parseObject(JSON.toJSONString(allOrder.get(k)), String.class);//关键转换地方
for(int l=0;l<index;l++){
if(s.equals(ttBook[l])){
flag=false;
break;
}
}
if(flag==true){
ttBook[index++]=s;
}
}
相关错误:
有些由于数据库某些字段为空可能导致:
1.接收到的list<T>,泛型字段不全。例如我的泛型有7个字段,实际只接受了5个字段,可能是数据库中某些字段为空导致;
2.有些因为数据库字段为空,导致前端接收到的json串某些字段为空,会报前端某些springel错误,其实前端写法没问题,主要还是要检查一下后端传来的json。比如我的后端json串因为数据库的某条数据的某个字段为null,导致前端(使用了theamleaf)报错spring el 语法错误,页面某些功能无法正常运行