1. Gson提供@Since注释来控制基于其各种版本的类的Json序列化/反序列化。考虑以下具有版本控制支持的类。在这个类中, 我们最初定义了一个name变量, 之后我们又添加了一个age新变量。使用@Since, 我们已经定义了版本1.0的name和版本1.1的age。@Since也可以添加到类上。

@Since(1.0)
private String name;
@Since(1.1)
private int age;

2. GsonBuilder提供了setVersion()方法来序列化这样的版本化类。

GsonBuilder builder = new GsonBuilder();
builder.setVersion(1.0);
Gson gson = builder.create();

3. 例子

3.1. 新建一个名为GsonSerializeNulls的Java项目, 同时添加相关jar包。

3.2. 新建Student.java

package com.fj.v;import com.google.gson.annotations.Since;public class Student {@Since(1.0)private String name;@Since(1.1)private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String toString() {return "Student [name: " + name + ", age: " + age + "]";}
}

3.3. 新建App.java

package com.fj.v;import com.google.gson.Gson;
import com.google.gson.GsonBuilder;public class App {public static void main(String[] args) {// 创建一个学生对象Student student = new Student("小明", 21);Gson gson = new Gson(); String jsonString = gson.toJson(student);System.out.println(jsonString); // 1. Gson构造器GsonBuilder builder = new GsonBuilder();// 2. Gson版本支持builder.setVersion(1.0);// 3. 格式良好的输出builder.setPrettyPrinting();// 4. 创建Gson对象gson = builder.create();// 5. JavaBean转化为JSON字符串jsonString = gson.toJson(student);System.out.println(jsonString);}
}

3.4. 运行项目

009_Gson版本支持相关推荐

  1. 解决 Android 中出现依赖多个版本支持库的问题

    解决 Android 中出现依赖多个版本支持库的问题 参考文章: (1)解决 Android 中出现依赖多个版本支持库的问题 (2)https://www.cnblogs.com/lshare/p/1 ...

  2. python装饰器-python装饰器是哪个版本支持的

    python装饰器是哪个版本支持的 **kwargs): print ' % (unction.__name__:@app.route(':import unctoolsde log(text=&am ...

  3. Spring Cloud 版本支持

    Spring Cloud alibaba在2019年4月19号,发布了两个版本,分别是0.2.2.RELEASE.0.9.9.RELEASE,分别对应Spring Cloud Finchley和Gre ...

  4. hbase的2.2.4版本支持哪个版本的hadoop_2019 年,Hadoop 还是数据处理的可选方案吗?...

    作者丨Christian Hollinger 译者丨方彦 目前云驱动数据处理和分析呈上升趋势,我们在本文中来分析下,Apache Hadoop 在 2019 年是否还是一个可选方案. 从我第一次使用 ...

  5. 32位/64位WIN2003各版本支持内存列表 彻底解决XP系统无法支持4G内存的问题

    WIDOWS2003各版本支持内存简表 版本  支持CPU数量  支持最大内存  32位 Windows Server 2003, Standard Edition (标准版)  2路  4G  32 ...

  6. CentOS各个版本支持周期

    CentOS各个版本支持周期 CentOS 版本 发布日期 完全更新 维护更新 3 2004年3月19日 2006年7月20日 2010年10月31日 4 2005年3月9日 2009年3月31日 2 ...

  7. 基于MQTT协议的WZ指令开发V3.0版本支持onenet

    title: 基于MQTT协议的WZ指令开发V3.0版本支持onenet tags: WZ指令 date: 2019-02-18 10:53:00 视频讲解:(V3.0版本)-https://www. ...

  8. sql服务器支持版本,支持的版本和版本升级 (SQL Server 2017)

    支持的版本和版本升级 (SQL Server 2017) 12/13/2019 本文内容 适用于: SQL Server(所有支持的版本) - 仅限 Windows 可以从 SQL Server 20 ...

  9. MT6752/32平台 KK和L版本支持的虚拟sensor类型有哪些

    [DESCRIPTION] MT6752/32平台 KK和L版本支持的虚拟sensor类型有哪些 [SOLUTION] KK Hal Support 9 virtual sensors,这些虚拟sen ...

最新文章

  1. GNUGK 作为Gatekeeper穿透防火墙和NAT
  2. 遗传算法解决旅行商问题(TSP)
  3. 欢迎关注我的微信公众号 “我是一个假的程序猿”
  4. ARM 之十 ARMCC(Keil) map 文件(映射文件)详解
  5. HashMap 的性能因子
  6. 无法跳转 vscode_爱了爱了,这个VSCode插件将极大提高你的工mo作yu效率
  7. 就linux学习的一点感受,学习linux的体会
  8. 收缩分割多边形(PSENet中有使用)
  9. 梦燕服饰:企业数字化走得快不是真本事,走得稳才是硬道理
  10. Kuboard云原生管理工具
  11. 万能Ghost全攻略(最详细完整的教程)
  12. mybatis直接执行sql_拼多多二面:Mybatis是如何执行一条SQL命令的?
  13. 10款滑动门代码_jquery 滑动门_js滑动门_tab滑动门_jquery 选项卡_js选项卡_tab选项卡效果(一)
  14. SSIS 左边工具栏消失处理
  15. word当前页面设置第一页
  16. zip压缩脚本(linux)
  17. ktv点歌系统服务器破解,欧凯KTV卡拉OK点歌系统
  18. 【安全】eWebeditor编辑器上传webshell
  19. 金丹期前期:1.10、python语言进阶-文件操作
  20. 华科_图形学笔记_07_投影变换

热门文章

  1. 【Linux】JDK+Eclipse 搭建C/C++开发环境
  2. 周志华 机器学习 笔记
  3. android 中的aidl
  4. 【转载】SharpDevelop代码分析
  5. 只能数字或小数 只能有一个小数点并且第一位不能为小数点,还有小数点后面限制两位
  6. 在CentOS7.2上部署基于PostgreSQL10的citus分布式数据库
  7. 提取稳定前景的两种方法
  8. 进程和线程的一些见解
  9. web頁面優化以及SEO
  10. bzoj3450 Easy(概率期望dp)