Map转为String

博客讲述了在使用Redis缓存时遇到的问题,即直接将Map对象toString()存储后导致取出时转换失败。作者发现应当先将Map转换为JSONObject,然后将转换后的字符串存入Redis,取出时再反序列化为Map,这样操作才能正常运行。此问题的解决揭示了数据序列化与反序列化的重要性。
摘要由CSDN通过智能技术生成

最近在做redis缓存时,需要将一个Map的对象转换为String对象存入redis,用的时候需从redis中取出来后并转为Map对象。

之前的做法直接就是Map对象的toString()存入redis,后面取出是就是用再转换为Map.

String转换为:JSONObject jsonobject = JSONObject.fromObject(str);

rMap = (Map) jsonobject;

今天之前一切运行正常,本地还有服务器都测试过没问题,但是今天却报错了:

41f6893c83f83a2217c3f78ef243253e.png

仔细排除原因发现不能直接将Map对象的toString()存入redis,而是应该转换为JsonObject后再调用toString()后存入redis,就正常了,多么不可思议又理所当然!

附:

Map map=new HashMap();

map.put(“fff”,“fff”);

System.out.println(map.toString());

JSONObject jsonObject=JSONObject.fromObject(map);

System.out.println(jsonObject.toString());

输出的结果如下:

736d3017381692626494a8150f20fe0a.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值