restemplate调用list

本文介绍了在使用Spring框架进行前后端交互时遇到的SpringEL错误及其解决方法,包括如何通过fastjson处理List<T>类型的实体类数据,以及在面对数据库字段为空时的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的方法:

方法一:用数组接收(泛型,针对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 语法错误,页面某些功能无法正常运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haibianyoushark

如有所帮助,请留下碎银,多谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值