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

引入:

虽然是小问题,但是我还是需要记录下,我们知道,Google提供了一个Gson框架让我们高效的吧普通对象(一般VO为佳) 和json字符串之间进行互转。因为转换多数是和浏览器打交道的,所以一般默认的Gson会把html escape转义,但是某些特殊的字段,比如说,我们有一个authToken,它是base64 encoding 的,这个时候,我们就需要保留它的原始值(后面有0个或者个或者2个等号=,而不能把这个值url escape.


解决:

遇到这种情况,我们就不能用默认的Gson了,而是要新建一个GsonBuilder,并且让这个GsonBuilder禁用html escape的功能,然后用它创造出来的Gson进行转换,就可以达到我们的目的了。


实例如下:


假设我们有一个VO:

095342478.png

它包含一个字段并且是不准转义的,我们必须保留这个原始内容(base64 encoding后的内容)。


我们写一段程序来测试:

095540689.png


测试结果如下:

095732217.png

结论:

从这里可以看出,默认的Gson是会进行html escape的,它会吧最后的”=“号转为\u003d的形式,而我们如果用GsonBuilder,并且disableHtmlEscaping之后,让其创建一个Gson,再用这个Gson转换时,结果就不会被html escape.





本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/1302450,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot安装和创建简单的Web应用

SpringBoot安装 方式一: Eclipese->Help->Eclipse Marketplace ->Finde STS -> Install 注意:安装过程中挺慢,而且可能会报错,报错时需要重复以上步骤(重新安装STS后,安装进度接之前的继续进行…

ASP.NET Session 详解

[ASP.NET] Session 详解 开发者在线 Builder.com.cn 更新时间:2008-03-23作者:黑暗凝聚力量,堕落方能自由 来源:CSDN 本文关键词: Web开发 ASP session 详解 本文仅代表作者个人观点,正确与否请读者自行研究!阅读本文…

hadoop namenode管理元数据机制

一、简要namenode管理元数据机制: 二、详细namenode管理元数据机制: 三、secondary namenode 合并edits和fsimage: 四、namenode存储元数据细节: 五、checkpoint触发点: 本文转自lzf0530377451CTO博客,原文…

BABOK - 企业分析(Enterprise Analysis)概要

描述 企业分析描述我们如何捕捉、提炼并明晰业务需要,并定义一个可能实现这些业务需要的一个方案范围,它包括问题定义和分析,业务案例开发,可行性研究和方案范围定义 目的 明确业务战略需要和目标,并建议方案范围 任务…

6、EIGRP配置实验之负载均衡

1、实验拓扑 2、负载均衡原理 等价负载均衡:默认情况下EIGRP只支持等价负载均衡,默认支持4条线路的等价负载均衡,可以通过show ip protocols 查看,最大可以支持16条线路的等价负载均衡,可以在EIGRP路由进程下通过maxim…

haproxy+keepalived实现负载均衡及高可用

HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高性能性、负载均衡,以及基于TCP和HTTP的应用程序代理。相较与 Nginx,HAProxy 更专注与反向代理,因此它可以支持更多的选项,更精细的控制,更多的健…

iOS技术博客:App备案指南

📝 摘要 本文介绍了移动应用程序(App)备案的重要性和流程。备案是规范App开发和运营的必要手段,有助于保护用户权益、维护网络安全和社会秩序。为了帮助开发者更好地了解备案流程,本文提供了一份最新、最全、最详的备…

Perl文件读写操作

本文转自 tiger506 51CTO博客,原文链接:http://blog.51cto.com/tiger506/830771,如需转载请自行联系原作者

不用正则表达式,用javascript从零写一个模板引擎(一)

前言 模板引擎的作用就是将模板渲染成html,html render(template,data),常见的js模板引擎有Pug,Nunjucks,Mustache等。网上一些制作模板引擎的文章大部分是用正则表达式做一些hack工作,看完能收获的东西很少。本文将使用编译原理那套理论来打…

关于批量插入数据之我见(100万级别的数据,mysql)

2019独角兽企业重金招聘Python工程师标准>>> 因前段时间去面试,问到如何高效向数据库插入10万条记录,之前没处理过类似问题,也没看过相关资料,结果没答上来,今天就查了些资料,总结出三种方法&am…

极速理解设计模式系列:6.适配器模式(Adapter Pattern)

四个角色:目标抽象类角色(Target)、目标对象角色(Adapter)、源对象角色(Adaptee)、客户端角色(Client) 目标抽象类角色(Target):定义需要实现的目标接口 目标对象角色(Adapter):调用另外一个源对象,并且转换…

Spark(二): 内存管理

2019独角兽企业重金招聘Python工程师标准>>> Spark 作为一个以擅长内存计算为优势的计算引擎,内存管理方案是其非常重要的模块; Spark的内存可以大体归为两类:execution和storage,前者包括shuffles、joins、sorts和agg…

多播、组播、广播优缺点分析

2019独角兽企业重金招聘Python工程师标准>>> 单播、多播和广播单播”(Unicast)、“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究…

LOFTERD18B542F16FF685FD684F427B4…

2019独角兽企业重金招聘Python工程师标准>>> 验证 转载于:https://my.oschina.net/jinhengyu/blog/1572124

Source Map调试压缩后代码

在前端开发过程中,无论是样式还是脚本,运行时的文件可能是压缩后的,那这个时候调试起来就很麻烦。 这个时候,可以使用Source Map文件来优化调试,Source Map是一个信息文件,里面储存着原代码位置信息&#x…

两台电脑间大量数据拷贝的快捷方法

可能大家会遇到需要将一台电脑里的数据拷贝到另外一台电脑,最常用的方法是用u盘或移动硬盘等存储设备来拷贝,这样速度慢,而且可能拷贝多次才能将数据拷贝完。现提供一种方法,就是通过windows 的文件共享来实现。通过千兆网线直接连…

工作所用的模块回滚脚本

俗话说的好:“真男人从来不回滚”,但是家中常备一个回滚脚本也是很有必要的,我所在公司的服务器模块名都是在初始化的时候写进/etc/role_install这个文件里,如下图的这个服务器就是fss服务器: 再比如下面这个服务器&am…

Quartus II 8.1 详解--有图---图片详解 【1讲】

Quartus II 8.1 详解--有图---图片详解 看图片比较清楚,比文章清楚的多 本文转自 zhangguangyi 51CTO博客,原文链接http://blog.51cto.com/bosszhang/808019:

shell下的进度条和最大最小平均值

进度条 C语言下的进度条参考我原来的一篇blog->进度条 1234567891011121314151617181920212223function proc() {i0 str arr(| / - \\) index0 while [ $i -le 100 ] do printf "[%-101s][%d%%][%c]\r" "$str" "$i" "${arr[$index]}&qu…

Linux系统管理初步(七)系统服务管理、chkconfig与systemd 编辑中

Linux系统本身包含了很多服务,CentOS6之前系统的服务用SysV控制,CentOS7改为systemd控制 一、chkconfig服务管理机制 简而言之,chkconfig就是CentOS6以前用来控制系统服务的工具, 常用方法举例 chkconfig --list #列出所有的系统服…