用Jedis獲取Json字串時候遇到的乙個坑

2021-09-11 08:12:20 字數 645 閱讀 8549

記錄以下今天下午遇到的乙個坑,一下午時間全花在這個問題上了。。。

在用jedis從redis中獲取到json字串後要將它反序列化為物件。結果丟擲了異常。第乙個懷疑是這個json字串是不是格式有問題,我將這個json字串在控制台列印出來放到格式化的**上,結果沒問題。

列印出來的字串如下:

又懷疑是不是fastjson有bug,換成jackson去解析,還是不行。。。

經過無數次的debug,突然發現了乙個問題:

這字串首尾多了一對引號

用substring將首尾引號去掉後再次啟動,還是解析不了。

這時候我靈光一閃,突然想到,我們平時在字串中的

\"
在控制台上只會列印出"而現在我的控制台能列印出\"

這說明什麼???說明\"前面還有\\啊!!!

於是我再次將字串中的\\全部替換為空字串,這回終於成功了。

撒花總結

1.將首尾的"去掉

2.用replace將\\替換為空串

python之 獲取的json字串取值

獲取到的json字串,然後對其取值 data result.get result get ip 0 get msg 取值得到的是unicode字串 轉換為字典 可用eval 函式 data eval result.get result get ip 0 get msg data data.get l...

JSON字串解析

一 json物件 js可以按以下方式定義物件 varobj 這樣就定義了物件 obj,它有兩個公共屬性id和name,可以用 obj.id 的方式直接訪問其屬性值。從伺服器獲取資料時往往不止乙個物件,這就需要用到物件陣列,js中物件陣列可以用 來定義,如下 varobjs alert objs 0 ...

生成JSON字串

假設現在要建立這樣乙個json文字 物件 married false 布林值 try 是建立乙個物件 jsonobject person new jsonobject 第乙個鍵phone的值是陣列,所以需要建立陣列物件 jsonarray phone new jsonarray phone.put ...