gson属性disableHtmlEscaping对等于号的转义\u003d,注解符号Expose,SerializedName,Since和Until
gson属性disableHtmlEscaping对等于号的转义\u003d,注解符号Expose,SerializedName,Since和Until
package com.example.core.mydemo; import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder; /**
* GsonBuilder builder = new GsonBuilder();
* // builder.excludeFieldsWithoutExposeAnnotation();
*
* 因为这里我们的gson使用了gsonBuilder的excludeFieldsWithoutExposeAnnotation()方法来构造.
* 它表示任何没有被@Expose注解的字段都将被忽略, 并且即使用了@Expose但serialize=false 时也不会被序列化。
* ps: 默认Expose: serialize = true, deserialize= true
* 反序列化同理.
*
*
* @SerializedName (作用域field)
* 这个注解只是用于映射数据的key用的。比如常用的json的key.
* 上面的例子。如果在id属性上加个@SerializedName("_id"). 将会输出
*
* @Since 和 @Until
* 这2个注解用于表示数据序列化的最早版本since(自从),和最晚版本until(直到).
* 也是搭配GsonBuilder使用的。
* //这里设置当前版本为2.0. 那么since大于2.0的不被序列化和反序列化。
* //until小于2.0的不被序列化和反序列化。
* Gson gson = new GsonBuilder().setVersion(2.0).create();
* 打印输出:
JSon={"path":"/pages/index?orderNo=123344"}
Gson={"path":"/pages/index?orderNo=123344"}
Gson转义等号={"path":"/pages/index?orderNo\u003d123344"}
JACKSON={"path":"/pages/index?orderNo=123344"} *
*/
public class EncodeTest { // 定义jackson对象
private static final ObjectMapper MAPPER = new ObjectMapper(); public static void main(String[] args) {
String path = "/pages/index?orderNo=123344"; // String pathNew = "/"+path.replace("\u003d","=");
// System.out.println("pathNew=" + pathNew); JsonVO vo = new JsonVO();
vo.setPath(path); System.out.println("JSon=" + JSON.toJSONString(vo)); GsonBuilder builder = new GsonBuilder();
// builder.excludeFieldsWithoutExposeAnnotation();
//设置属性:disableHtmlEscaping
Gson gson = builder.disableHtmlEscaping().create(); System.out.println("Gson=" + gson.toJson(vo)) ; //等于号:orderNo\u003d123344 被转义了
System.out.println("Gson转义等号=" + new Gson().toJson(vo)) ; try {
//过滤null属性
MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL);
System.out.println("JACKSON=" + MAPPER.writeValueAsString(vo));
} catch (JsonProcessingException e) {
e.printStackTrace();
} }
} package com.example.core.mydemo; public class JsonVO {
String path; public String getPath() {
return path;
} public void setPath(String path) {
this.path = path;
}
}
gson属性disableHtmlEscaping对等于号的转义\u003d,注解符号Expose,SerializedName,Since和Until的更多相关文章
- C#中Equals和= =(等于号)的比较)
C#中Equals和= =(等于号)的比较) 相信很多人都搞不清Equals和 = =的区别,只是零星的懂一点,现在就让我带大家来进行一些剖析 一. 值类型的比较 对于值类型来说 ...
- C#中Equals和= =(等于号)的比较(转)
一. 值类型的比较 对于值类型来说 两者比较的都是”内容”是否相同,即 值 是否一样,很显然此时两者是划等号的. 例: int i = 9; int j = 9; Console ...
- C#中Equals和= =(等于号)的比较)(转载)
C#中Equals和= =(等于号)的比较) 相信很多人都搞不清Equals和 = =的区别,只是零星的懂一点,现在就让我带大家来进行一些剖析 一. 值类型的比较 对于值类型来说 ...
- 【转载】ASP.NET 内联代码、内联表达式、数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号)
ASP.NET 内联代码.内联表达式.数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号) 今天在做渭南电脑维修网的一个小功能时遇到了一些问题,因此特别列出,以备他日之用. 首先对 ...
- js里面的等于号--
一个是赋值等于号,二个是对比等于号,那么三个等于号是什么用的呢 有时候会看到在判断两个对象是否相等的时候使用了三个等号(===),它和两个等号(==)有什么区别呢?简单来说就是使用“==”时,如果 ...
- Oracle中的不等于号
今天碰到一个Oracle不等于的问题,最后搜索了一下,发现下面资料,拿来跟大家分享一下 关于Oracle中的不等于号: 在Oracle中, <> != ~= ^= 都是不等于号的意思. ...
- Yii2查询语句使用不等于号
Yii2 Active Record查询条件使用不等于号,需要使用到 operator format: [operator, operand1, operand2, ...] 运算符格式: [运算符, ...
- Oracle“不等于号”与Nulls的情况(转)
今天突然才发现,Oracle中的“不等于操作符”是忽略null的. 比如,查询comm不等于的500的记录,我会理所当然地使用where comm != 500 预想会返回包含null的不等于500的 ...
- Oracle中奇怪的【不等于号】
Oracle中奇怪的[不等于号] 在Oracle中,不等号有三种:<>,!=,^= 例如: select * from test where name<>'xn'.返回的结 ...
- JSP中EL很常用,怎样使用大于号、小于号、等于号等
JSP中EL很常用,怎样使用大于号.小于号.等于号等 符号 在EL中使用 常规 1 等于 eq == 2 不等于 ne != 3 大于 gt > 4 小于 lt < 5 大于等于 ge ...
随机推荐
- Java面向对象进阶第一天
面向对象高级第一天 static关键字 是静态的意思,可以修饰成员变量,也可以修饰成员方法 成员变量的分类 静态成员变量 有static修饰,属于类,与类一起加载,内存中只有一份,可以被共享访问. 什 ...
- CF845F - Guards In The Storehouse
题意:在 \((x,y)\) 放一个哨兵,可以监视本行后面的所有格子直到障碍.本列后面所有的格子直到障碍.求使全盘最多一个位置不被监视的方案总数. 我们发现,因为 \(nm\le 250\),所以 \ ...
- 通过反射机制简化 JDBC ResultSet 实体类的注入
提出问题 查询完某个表之后,一般都是把结果的每一个字段注入到一个实体类中.比如,数据库 users 表,查询出来的结果注入到 User 实体类中. 通过 while 遍历 ResultSet,把字段对 ...
- java学习日记20230228-变量
JAVA变量 变量是程序的基本组成单位 变量的3要素:类型 名称 值 int a = 1:定义了一个变量 int整数类型,名称为a,值为1 内存里面分配个空间,空间里的值为1 变量相当于 内存中一个数 ...
- 使用Java API操作Neo4j
使用IntelliJ IDEA (Jet Brains) 创建java工程 把下载好的neo4j包中的lib文件下的所有jar文件复制到工程Neo4j_Project的lib文件夹下(若无lib文件夹 ...
- LP1-5:流程与沟通
口头沟通,整理归档,落到文档或JIRA任务中 JIRA上的需求有对应任务,开发任务对应需求任务号,测试任务号对应开发任务,上线任务对应测试及开发任务. 需求说明 :每个版本有什么功能. 控制需求三要素 ...
- MS14-064/CVE-2014-6332漏洞复现(OLE远程代码执行漏洞、IE浏览器漏洞)
漏洞介绍:MS14-064 Microsoft Internet Explorer Windows OLE Automation Array Remote Code Execution,主要利用IE浏 ...
- PID名词解析
在工程实际中,应用最为广泛的调节器控制规律为比例.积分.微分控制,简称PID控制,又称PID调节. 当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的 其它技术难以采用时,系统控 ...
- 创建异步倒计时触发Task
https://www.cnblogs.com/shanfeng1000/p/13402152.html //Task关闭 CancellationTokenSource cancel = new C ...
- Power shell 读取电量,改变屏幕亮度
1. Get-Wmiobject -List win32* # 列出所有win32_信息(基本的BIOS,Battery , Memory, processor) 2.Get-WmiObject ...