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;
}
}

最新文章

  1. 2000条你应知的WPF小姿势 基础篇<78-81 Dialog/Location/WPF设备无关性>
  2. scrollWidth,clientWidth,offsetWidth的区别
  3. java验证码刷新
  4. 在GitHub上建立个人主页的方法
  5. Python中optionParser模块的使用方法[转]
  6. Oracle 11gR2中启动Scott用户的方法
  7. 01-03-02-2【Nhibernate (版本3.3.1.4000) 出入江湖】CRUP操作-Save方法的一些问题
  8. C#与C++相比较之STL篇
  9. PHP和MySQL Web开发 原书第4版 高清文字版,有目录,附带源码
  10. echarts_部分图表配置_dataZoom精确控制显示数据数量
  11. 深搜(DFS)广搜(BFS)详解
  12. 机器学习数学|偏度与峰度及其python实现
  13. 织梦CMS安装分享插件
  14. Spring-Data-JPA整合MySQL和配置
  15. manjaro下的.vimrc
  16. USGS-EROS项目espa-surface-reflectance中的Landsat8 大气校正LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本(四)
  17. mysql 查询 两个表中不同字段的 和,并通过两个表的时间来分组
  18. 最近的AI
  19. Unable to docker login through CLI - unauthorized: incorrect username or password
  20. Linux 下 pushd,popd,cd- 用法

热门文章

  1. 化学式latex语法
  2. LeetCode-1609 奇偶树
  3. windows 服务删除或停止
  4. MyBatis-Plus通用Iservice 方法详解
  5. 8. fitBounds(用了这个你就不用在设置zoom, minZoom, maxZoom, center)
  6. Word11 工程学院讲师论文office真题
  7. 使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法
  8. 客户端发送信息给服务器以及服务器接收客户端发来的信息(socket)
  9. Maven项目中配置文件资源导出问题
  10. JAVA丑数