引入:

虽然是小问题,但是我还是需要记录下,我们知道,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,如需转载请自行联系原作者

Gson的使用,对于不需要html escape的情况的处理相关推荐

  1. JAVA调用接口简单封装,Mvp+Retrofit2+RxJava2 项目中使用的简洁封装

    Retrofit2 + RxJava2 是一个强大的组合,完成一系列网络请求 MVP当前用的很多的一种框架,Model+View+Presenter 本文记录了作者在项目中对 Retrofit2 + ...

  2. fastjson map转json_Java对象转JSON咋这么头疼?不!那是你还没使用Fastjson

    前言 测试同学在写测试用例的时候,每个测试用例必须包含预期结果.而对于手工测试而言,执行测试时,预期结果基本上都是人工完成.而对于自动化用例的执行,就要借助于自动化断言,一般是借助于程序实现.以接口测 ...

  3. Jackson 解析j@JsonIgnorePropertiesson数据之忽略解析字段注解

    Jackson 解析j@JsonIgnorePropertiesson数据之忽略解析字段注解 我是一座离岛 关注 2017.04.12 14:32 字数 721 阅读 1121评论 0喜欢 0 以前解 ...

  4. Python2.0 模块大全

    博客 学院 下载 更多 写博客 qq779488143 Python 模块大全(很详细!) 转载 2014年12月12日 20:47:18 标签: Python / 模块 / 教程 3694 转载:. ...

  5. SELECT单表查询

    接上一篇文章中的SELECT语句单表查询. WHERE子句的条件表达式以及相关谓词: ④字符匹配--[NOT] LIKE-[ESCAPE]- 语句: [NOT] LIKE '<匹配串>' ...

  6. 间接解决Gson不能解决特殊符号%的问题

    事故现场:网络请求采用Rxjava + Retrofit,添加了日志拦截器HttpLoggingInterceptor 后台返回的数据包含字符%,直接报错 { "server_no" ...

  7. Java Json API:Gson使用简单入门

    GSON是Google开发的Java API,用于转换Java对象和Json对象.本文讨论并提供了使用API的简单代码示例.更多关于GSON的API可以访问:http://sites.google.c ...

  8. Gson:我爸是 Google

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 01.前世今生 我叫 Gson,是一款开源的 Java 库 ...

  9. 从一个Bug开始,重新认识一个强大的 Gson

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:Mafly, 地址:www.cnblogs.com/mafly/p/gson.html 从 ...

最新文章

  1. 数论重大突破:120年后,希尔伯特的第12个数学难题借助计算机获得解决
  2. 多雨季节 数据中心亦要“防汛”
  3. halcon旋转后坐标_FPGA大赛【八】具体模块设计图像旋转方案
  4. YOCTO项目介绍:通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统
  5. MyCat分布式数据库集群架构工作笔记0013---高可用_Mycat双主双从复制配置上
  6. matplotlib易混概念理解与画图详解
  7. Visual Stadio 2012创建WebApplication应用和运行赏析
  8. python游戏开发引擎_【图片】有关Ren'Py引擎的游戏制作汉化教程【linux游戏吧】_百度贴吧...
  9. node mysql菜鸟教程_Node.js 创建第一个应用
  10. 关于2013年1月21日的DNS故障分析文章
  11. 评测i9 13900hx和​​R9 7940HS选哪个 酷睿i913900hx和​​锐龙R97940HS对比
  12. 网易之小易最近在数学课上学习到了集合的概念,集合有三个特征:1.确定性 2.互异性 3.无序性.需要根据给定的w,x,y,z,求出集合中一共有多少个元素。
  13. 01 hbuilder账号的注册
  14. 软件开发、硬件开发、IPD产品开发 及 工程开发各阶段划分
  15. flash_tools安装及使用完全教程
  16. canvas rotate 累加旋转_Canvas的变换
  17. mysql 微信 jsp_SpringMVC+Spring+mybatis+mysql+jsp微信商城系统,有后台管理系统
  18. matlab求点介数程序,matlab_bgl 一个很有用的计算网络中每个节点介数的程序,对 分析 Cloud Computing 云 266万源代码下载- www.pudn.com...
  19. 赛效:WPS如何在文档中插入下一页分节符
  20. 一个很有意思的flash游戏,蚂蚁蛋糕保卫战(antbuster)

热门文章

  1. 软件数控编程_这么多CNC数控编程软件, 你觉得哪个好?
  2. linux获取文件的md5,linux shell 获取文件md5的命令linux操作系统 -电脑资料
  3. mysql自增字段_MySQL自增字段的常用语句
  4. python下载晚上excel_Python自动操控excel,一小时解决你一天的工作
  5. java substring截取字符串_java基础教程之字符串的介绍,比较重要的一个知识点【下】...
  6. 虚拟机python建站_搭建本地虚拟服务器linux(CentOS 7)的python虚拟环境(Hyper-V演示)...
  7. java中随机数边界问题,java 简单Dice问题(随机数的运用)
  8. 查看网卡命令 uefi_大神教你开机进入UEFI模式的方法,非常简单
  9. 单机最大负载_电流互感器允许接入的实际最大二次负载(注电案例1865)
  10. RN做的Android应用反编译,macOS Catalina配置Android反编译三件套 apktool/dex2jar/enjarify/jd-gui...