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 4754.矩阵

    \(\text{Problem}\) \(\text{Solution}\) 纪念我考场正解被二分暴力暴踩... 首先二分的话,显然可以二分出答案,然后数矩阵和大于等于本矩阵的是否有 \(k\) 个 ...

  2. 解决scroll中addEventListener不生效的问题

    这样写会出现一个情况,滚动的时候不打印任何值,并没有进入具体方法 但是下面这种方法 加一个true就会打印出相应的值

  3. 如何批量删除office文档属性

    在文件资源管理器界面全选所有office文档, 右键->属性->详细信息->删除属性和个人信息->从此文件中删除以下信息->全选->确定,即可.

  4. linux执行sh脚本报错:$’\r’: 未找到命令的解决

    原因: 命令直接从windows 复制过来导致的 解决:我是unbutu系统 安装dos2unix apt-get install dos2unix 执行dos2unix命令转换文件格式 dos2un ...

  5. 阿里播放器Aliplayer遇到的所有坑

    1,关于阿里播放器使用过的几种播放方式 url (source) ① 要在创建播放器前要拿到资源否则会报错 ② 在有不同清晰度的资源时  直接调用 player.loadByUrl() 方法会报错 官 ...

  6. uni小程序保存base64图片

    使用uni.getFileSystemManager().writeFile去下载base64图片<view class="share-btn" @click="s ...

  7. Appium 入门

    Appium安装总体需要以下几个步骤: 安装JDK 官网www.oracle.com去下载安装,尽量下载JDK7及以上的版本.然后去设置环境变量: 在系统变量下新建变量JAVA_HOME变量值指向JD ...

  8. excel快速生成相同内容

    先选中你所需要的单元格,如图所示: 输入自己想要的字符,然后按ctrl+enter,如图所示:

  9. Fuxploider-20210104

    Usage: fuxploider.py [-h] [-d postData] [--proxy proxyUrl] [--proxy-creds [credentials]] [-f integer ...

  10. 手写Web图片懒加载~

    废话不多说,直接上代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>图片懒加载</title> ...