普通网友 2020-04-17 18:45 采纳率: 0%
浏览 1506

Redis缓存一个List,可以存,但是取数据的时候失败,有大神知道怎么回事么?

public class RedisUtlis {
//依赖注入jedis对象

// 存入数据到redis
public static void saveJsonData(String key, List<Setmeal> values) throws Exception {
    JedisPool jedisPool = new JedisPool();
    //获取jieis连接
        Jedis jedis = jedisPool.getResource();
       //判断key是否存在
        // 把传入的对象转换成json字符串
        String jsonData = JSON.toJSONString(values);
        //存入到redis
        jedis.set(RedisConst.SETMEAL_DATA_Setmeal,jsonData);
        //释放资源
        jedis.close();
}

// 获取缓存数据
public static List<Setmeal> getJsonData(String key)  throws Exception{
    JedisPool jedisPool = new JedisPool();
    Jedis jedis = jedisPool.getResource();

        String  s = jedis.get(key);
        // 把字符串转换回集合对象
    try {
        //把数据转换成数组
        JSONArray jsonArray = JSON.parseArray(s);
        //数组转换成字符串
        String js= JSONObject.toJSONString(jsonArray);
        //字符串转换成list
        List<Setmeal>  setmeals = JSONObject.parseArray(js,Setmeal.class);
        return setmeals;
    }catch (Exception e){
        e.printStackTrace();
        jedis.close();
        return null;
    }
}

}

  • 写回答

1条回答 默认 最新

  • Json-Huang 2020-04-17 19:53
    关注

    报什么错误?getJsonData传进去的key是RedisConst.SETMEAL_DATA_Setmeal这个变量值吗?
    建议 JSON.parseArray(s);前先判断下s是否为空

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!