今天經過FastJson輸出時,發現輸出的內容中多了不少的反斜槓,致使前端的JS不能經過json來進行條件判斷,從而影響了進程的正常運行。
運行環境:SpringBoot(1.5.21.RELEASE)+FastJson(1.2.47)前端
原本輸出不該該有反斜槓的。json
正確的輸出應該是: 後端
對比以後,發現就是在每一個雙引號的前面加了反斜槓表示轉義。
Google和百度以後,你們的答案基本是能夠三位三種:post
- 經過String.ReplaceAll把"\"去掉;
(Java 反斜槓如何轉義的問題,根據下圖,能夠看出,在後端代碼中進行Replace是毫無心義的,由於生成的信息中本來沒有反斜槓轉義,反斜槓是FastJson的消息轉換器添加上去的。 因此就須要在前端頁面中JS判斷Json輸出的status是0仍是1以前,先將獲得的Json信息Replace一下。可是若是須要判斷的特別多的話,很麻煩。並且我用juqey的post方法,獲得結果result並非簡單的String,對result進行Replace並不可行。。。orz)(對我並不適用。)
- 直接返回對象,而不是返回String;
(fastjson如何去掉多餘的反斜槓,這裏我測試了一下我本身的,仍是不行。。。)
- fastjson的SerializerFeature能夠設置不進行字符轉義
(fastjson SerializerFeature含義,這個能夠設置DeDisableCheckSpecialChar 一個對象的字符串屬性中若是有特殊字符如雙引號,將會在轉成json時帶有反斜槓轉移符。若是不須要轉義,可使用這個屬性。默認爲false。 個人FastJson版本爲1.2.47,顯示已經不推薦使用了。我依然試了試,仍是不行。。。。。。 )
以上是我經過Google和百度的結果,仍沒有解決個人問題。
由於如今我在作的功能是仿的一個SpringBoot項目,因此,仍沒有結果的狀況下,我去一一對照了個人代碼和他的代碼,我發現本來的項目中,只找到了pom添加了fastjson的依賴,並無在SpringBoot的主程序對消息轉換器即HttpMessageConverters進行注入配置。 這也就是說,原項目中使用的是SpringBoot本來默認的消息轉換器配置,爲了解決個人問題,我把fastjson的配置註釋了。。測試
是的,好了。
回到最開始出問題的地方,也解決了。.net
若是你也遇到了一樣的問題,歡迎留言,咱們一塊兒討論。3d
雖然解決了目前的問題,可是仍是不太明白。cdn
下一步,抽出時間,瞭解SpringBoot的默認消息轉換機制,對比和以前FastJson的配置。