记录以下今天下午遇到的一个坑,一下午时间全花在这个问题上了。。。
在用Jedis从redis中获取到Json字符串后要将它反序列化为对象。结果抛出了异常。第一个怀疑是这个Json字符串是不是格式有问题,我将这个Json字符串在控制台打印出来放到格式化的网站上,结果没问题。
打印出来的字符串如下:
又怀疑是不是fastJson有bug,换成Jackson去解析,还是不行。。。
经过无数次的debug,突然发现了一个问题:
这字符串首尾多了一对引号。
用substring将首尾引号去掉后再次启动,还是解析不了。
这时候我灵光一闪,突然想到,我们平时在字符串中的
\"
在控制台上只会打印出"
而现在我的控制台能打印出\"
这说明什么???说明\"
前面还有\\
啊!!!
于是我再次将字符串中的\\
全部替换为空字符串,这回终于成功了。
撒花
总结
1.将首尾的"
去掉
2.用replace将\\
替换为空串