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的更多相关文章

  1. C#中Equals和= =(等于号)的比较)

    C#中Equals和= =(等于号)的比较) 相信很多人都搞不清Equals和 = =的区别,只是零星的懂一点,现在就让我带大家来进行一些剖析 一.           值类型的比较 对于值类型来说  ...

  2. C#中Equals和= =(等于号)的比较(转)

    一.           值类型的比较 对于值类型来说  两者比较的都是”内容”是否相同,即 值 是否一样,很显然此时两者是划等号的. 例: int i = 9; int j = 9; Console ...

  3. C#中Equals和= =(等于号)的比较)(转载)

    C#中Equals和= =(等于号)的比较) 相信很多人都搞不清Equals和 = =的区别,只是零星的懂一点,现在就让我带大家来进行一些剖析 一.           值类型的比较 对于值类型来说  ...

  4. 【转载】ASP.NET 内联代码、内联表达式、数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号)

    ASP.NET 内联代码.内联表达式.数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号) 今天在做渭南电脑维修网的一个小功能时遇到了一些问题,因此特别列出,以备他日之用. 首先对 ...

  5. js里面的等于号--

    一个是赋值等于号,二个是对比等于号,那么三个等于号是什么用的呢   有时候会看到在判断两个对象是否相等的时候使用了三个等号(===),它和两个等号(==)有什么区别呢?简单来说就是使用“==”时,如果 ...

  6. Oracle中的不等于号

    今天碰到一个Oracle不等于的问题,最后搜索了一下,发现下面资料,拿来跟大家分享一下   关于Oracle中的不等于号: 在Oracle中, <> != ~= ^= 都是不等于号的意思. ...

  7. Yii2查询语句使用不等于号

    Yii2 Active Record查询条件使用不等于号,需要使用到 operator format: [operator, operand1, operand2, ...] 运算符格式: [运算符, ...

  8. Oracle“不等于号”与Nulls的情况(转)

    今天突然才发现,Oracle中的“不等于操作符”是忽略null的. 比如,查询comm不等于的500的记录,我会理所当然地使用where comm != 500 预想会返回包含null的不等于500的 ...

  9. Oracle中奇怪的【不等于号】

    Oracle中奇怪的[不等于号]   在Oracle中,不等号有三种:<>,!=,^= 例如: select * from test where name<>'xn'.返回的结 ...

  10. JSP中EL很常用,怎样使用大于号、小于号、等于号等

    JSP中EL很常用,怎样使用大于号.小于号.等于号等   符号 在EL中使用 常规 1 等于 eq == 2 不等于 ne != 3 大于 gt > 4 小于 lt < 5 大于等于 ge ...

随机推荐

  1. 李超树学习笔记 & JZOJ 5039. 【NOI2017模拟4.2】查询题解

    李超树 它本质上是线段树的拓展运用 解决的问题:平面直角坐标系中,支持插入线段,问 \(x = x_0\) 这条直线上最大的 \(y\) 值 它维护的东西很奇特:优势线段 何为"优势线段&q ...

  2. Linux centos 代替方案: Rocky Linux (centos作者)

    官网: Rocky Linux

  3. Cobalt Strike 之:提权

    郑重声明: 本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关.倡导维护网络安全人人有责,共同维护网络文明和谐. Co ...

  4. Apinto 网关 V0.11.1 版本发布,多协议互转,新增编码转换器,接入 Prometheus...

    憋了那么久,Eolink 旗下 Apinto 开源网关再次更新啦~ 一起来看看是否有你期待的功能! 1.协议转换功能上线 之前发布的 Apinto v0.10.0 已经支持了多协议的基本功能,实现多协 ...

  5. 记一次oracle单表改分区表 一波三折

    业务上要把单表还差分区表 ```SQL> @seg gwx.aopen SEG_MB OWNER SEGMENT_NAME SEG_PART_NAME SEGMENT_TYPE SEG_TABL ...

  6. DesignPatternPrinciple-设计模式原则

    1. 单一职责原则(Single Responsibility Principle)类T负责两个不同的职责:职责P1,职责P2. using System; using System.Collecti ...

  7. ASP.net EF动态映射实体

    1.配置EF与建立实体模型这里不做过多介绍.主要介绍如何动态映射实体模型 1.1.实现过程有很多种方式我们这里使用接口.然后扫描所有继承了该接口的实体类然后映射(也可以自行扩展使用特性) 首先我们新建 ...

  8. containerd.service containerd-1.6.8-linux-amd64.tar.gz cni-plugins-linux-amd64-v1.1.1.tgz 标准文件下载

    配置K8S时 可能会用到#systemcd来管理containerd,这https://raw.githubusercontent.com/containerd/containerd/main/con ...

  9. NSIS 自定义界面,下载并安装Net.Framework4.8

    以 ScreenToGif 这款软件为例,详细讲解如何在安装的过程中检测并下载net包进行安装. 前言 1.ScreenToGif 是一款开源的截屏软件,依赖于Net.Framework环境 2.本文 ...

  10. 数据库多表连接查询中使用group by分组语句,Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'XXX' which is not functionally dependent on columns in GROUP BY claus

    需求描述: 要是用两表联合查询,并对查询的结果进行分组:sql如下: 1 SELECT 2 a.`id`, 3 a.`fr_num`, 4 b.`ent_status` 5 FROM 6 `table ...