Springboot拼接实体类里面的URL

继上次做微信小程序时解决拼接图片路径的问题之后,这次做音乐的接口又遇到了很类似上次的问题。感觉不是很难,但是一时想不到如何解决。由于他返回的数据类似于List<Map<String,Object>>这种格式的。在这里插入图片描述我也发帖,咨询过大佬,大佬提供了这么一个思路,但是被我一眼就否了。

for (Map<String, Object> m : yourlist) { //遍历list
    String url = (String)m.get(“murl”); //从map取出murl
    url = “xxx地址” + url; //前面拼接地址
    m.put(“murl”, url); //再放回map
}

乍一看可行,实际上类型根本就不对,List里面的泛型是个对象,写Map<String,Object>肯定会报错。很烦,于是我找了大佬来帮我解决这个问题,大佬写了几串代码之后,就让我无地自容了。

    @ResponseBody
    @RequestMapping(value = "/findMusicList",method = RequestMethod.GET)
    public List<TMusic> findMusicList(){
      List<TMusic> list=tUserService.findMusicList();
      for (TMusic m:list){
          String murl=m.getMurl();
          m.setMurl(LocalNetUtils.natApp+murl);//LocalNetUtils.natApp是调用其他类的静态常量
      }
      return list;
    }

看完之后唯一的感悟就是简单,就像他嘴里说的那么简单一样的简单,可是想想又觉得自己是真不可能写得出来。这里给的泛型就是我定义的对应的一个实体类,循环获取实体里面的murl,然后再重新set返回。

其他的方法
一、其实在这之前,我也咨询了我的朋友,他让我改实体类里面的get/set方法。于是我就在实体里面改了,这里其实和上面大佬给的方法可以说是一致的,不同之处在于作用域。我朋友给的方法是真的把实体类给改了,其弊端就是如果以后在其他场景需要调用它会有问题(代码就不做展示了,就是更改set里面的murl,this.setmurl=LocalNetUtils.natApp+murl)。
二、就是将未拼接好的数据直接传给前端,前端在循环的时候把需要的字符拼接上去循环,也同样可以实现效果(这是最不推荐的,人前端估计也不会乐意干这样的事)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值