Redis缓存,泛型集合与json字符串的相互转换

难点是泛型如何转换

一、arrayList<Map<String, Object>>转化json字符串,存入redis缓存

        

        ArrayList<Map<String, Object>> listProfit 

        //将ArrayList<Map<String, Object>>类型数据转换成json字符串

        String listProfitPctJsonStr = JSON.toJSONString(listProfit); 

        //然后将json字符串存入redis缓存,唯一key value
        JedisUtils.setex("listProfit", 600,listProfitPctJsonStr);

    

 

二、json字符串转回ArrayList<Map<String, Object>>(难点

   

 List<Map<String, Object>> listProfit=null;
 //先从redis里面去查询数据,看是否能获取到对应json字符串
 String jsonStrLp=JedisUtils.get("listProfit");

//如果能获取则说明缓存中有数据

if(!StringUtils.isBlank(jsonStrLp)){

   //目的是为了泛型的转换

   listProfit=new ArrayList<Map<String,Object>>();

   //先把从redis缓存中取出来的json字符串转为List<Map>集合

   List<Map> mapList=JSON.parseArray(jsonStrLp, Map.class);

   //然后循环遍历这个List集合,得出的结果为Map,然后再强转为Map<String,Object>,

          再循环 把 Map<String,Object>添加到List集合中,搞定!!!

   for (Map map : mapList) {
        Map<String,Object> sObj=(Map<String,Object>)map;
        listProfit.add(sObj);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值