009_Gson版本支持
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版本支持相关推荐
- 解决 Android 中出现依赖多个版本支持库的问题
解决 Android 中出现依赖多个版本支持库的问题 参考文章: (1)解决 Android 中出现依赖多个版本支持库的问题 (2)https://www.cnblogs.com/lshare/p/1 ...
- python装饰器-python装饰器是哪个版本支持的
python装饰器是哪个版本支持的 **kwargs): print ' % (unction.__name__:@app.route(':import unctoolsde log(text=&am ...
- Spring Cloud 版本支持
Spring Cloud alibaba在2019年4月19号,发布了两个版本,分别是0.2.2.RELEASE.0.9.9.RELEASE,分别对应Spring Cloud Finchley和Gre ...
- hbase的2.2.4版本支持哪个版本的hadoop_2019 年,Hadoop 还是数据处理的可选方案吗?...
作者丨Christian Hollinger 译者丨方彦 目前云驱动数据处理和分析呈上升趋势,我们在本文中来分析下,Apache Hadoop 在 2019 年是否还是一个可选方案. 从我第一次使用 ...
- 32位/64位WIN2003各版本支持内存列表 彻底解决XP系统无法支持4G内存的问题
WIDOWS2003各版本支持内存简表 版本 支持CPU数量 支持最大内存 32位 Windows Server 2003, Standard Edition (标准版) 2路 4G 32 ...
- CentOS各个版本支持周期
CentOS各个版本支持周期 CentOS 版本 发布日期 完全更新 维护更新 3 2004年3月19日 2006年7月20日 2010年10月31日 4 2005年3月9日 2009年3月31日 2 ...
- 基于MQTT协议的WZ指令开发V3.0版本支持onenet
title: 基于MQTT协议的WZ指令开发V3.0版本支持onenet tags: WZ指令 date: 2019-02-18 10:53:00 视频讲解:(V3.0版本)-https://www. ...
- sql服务器支持版本,支持的版本和版本升级 (SQL Server 2017)
支持的版本和版本升级 (SQL Server 2017) 12/13/2019 本文内容 适用于: SQL Server(所有支持的版本) - 仅限 Windows 可以从 SQL Server 20 ...
- MT6752/32平台 KK和L版本支持的虚拟sensor类型有哪些
[DESCRIPTION] MT6752/32平台 KK和L版本支持的虚拟sensor类型有哪些 [SOLUTION] KK Hal Support 9 virtual sensors,这些虚拟sen ...
最新文章
- GNUGK 作为Gatekeeper穿透防火墙和NAT
- 遗传算法解决旅行商问题(TSP)
- 欢迎关注我的微信公众号 “我是一个假的程序猿”
- ARM 之十 ARMCC(Keil) map 文件(映射文件)详解
- HashMap 的性能因子
- 无法跳转 vscode_爱了爱了,这个VSCode插件将极大提高你的工mo作yu效率
- 就linux学习的一点感受,学习linux的体会
- 收缩分割多边形(PSENet中有使用)
- 梦燕服饰:企业数字化走得快不是真本事,走得稳才是硬道理
- Kuboard云原生管理工具
- 万能Ghost全攻略(最详细完整的教程)
- mybatis直接执行sql_拼多多二面:Mybatis是如何执行一条SQL命令的?
- 10款滑动门代码_jquery 滑动门_js滑动门_tab滑动门_jquery 选项卡_js选项卡_tab选项卡效果(一)
- SSIS 左边工具栏消失处理
- word当前页面设置第一页
- zip压缩脚本(linux)
- ktv点歌系统服务器破解,欧凯KTV卡拉OK点歌系统
- 【安全】eWebeditor编辑器上传webshell
- 金丹期前期:1.10、python语言进阶-文件操作
- 华科_图形学笔记_07_投影变换