記錄以下今天下午遇到的一個坑,一下午時間全花在這個問題上了。。。
在用Jedis從redis中獲取到Json字符串後要將它反序列化爲對象。結果拋出了異常。第一個懷疑是這個Json字符串是不是格式有問題,我將這個Json字符串在控制檯打印出來放到格式化的網站上,結果沒問題。
打印出來的字符串如下:
又懷疑是不是fastJson有bug,換成Jackson去解析,還是不行。。。
經過無數次的debug,突然發現了一個問題:
這字符串首尾多了一對引號。
用substring將首尾引號去掉後再次啓動,還是解析不了。
這時候我靈光一閃,突然想到,我們平時在字符串中的
\"
在控制檯上只會打印出"
而現在我的控制檯能打印出\"
這說明什麼???說明\"
前面還有\\
啊!!!
於是我再次將字符串中的\\
全部替換爲空字符串,這回終於成功了。
撒花
總結
1.將首尾的"
去掉
2.用replace將\\
替換爲空串