引入:
虽然是小问题,但是我还是需要记录下,我们知道,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.
本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/1302450,如需转载请自行联系原作者