引入:
雖然是小問題,但是我還是需要記錄下,我們知道,Google提供了一個Gson框架讓我們高效的吧普通對象(一般VO為佳) 和json字符串之間進行互轉。因為轉換多數是和瀏覽器打交道的,所以一般默認的Gson會把html escape轉義,但是某些特殊的字段,比如說,我們有一個authToken,它是base64 encoding 的,這個時候,我們就需要保留它的原始值(后面有0個或者個或者2個等號=,而不能把這個值url escape.
解決:
遇到這種情況,我們就不能用默認的Gson了,而是要新建一個GsonBuilder,并且讓這個GsonBuilder禁用html escape的功能,然后用它創造出來的Gson進行轉換,就可以達到我們的目的了。
實例如下:
假設我們有一個VO:
它包含一個字段并且是不準轉義的,我們必須保留這個原始內容(base64 encoding后的內容)。
我們寫一段程序來測試:
測試結果如下:
結論:
從這里可以看出,默認的Gson是會進行html escape的,它會吧最后的”=“號轉為\u003d的形式,而我們如果用GsonBuilder,并且disableHtmlEscaping之后,讓其創建一個Gson,再用這個Gson轉換時,結果就不會被html escape.