Google Gson 字段过滤:基于 Gson 版本
2017-01-06 10:32
417 查看
本文内容大多基于官方文档和网上前辈经验总结,经过个人实践加以整理积累,仅供参考。
当为生成的 Google Gson 对象指定版本信息时,可以使用 @Since 和 @Until 注释实现字段过滤。@Since 和 @Until 都接收一个 double 类型参数。
@Since 当设置的 Gson 对象版本大于或等于其所接收的参数时导出该字段
@Until 当设置的 Gson 对象版本小于其所接收的参数时导出该字段
示例
(1) POJO 对象
(2) 测试代码
运行结果:
当为生成的 Google Gson 对象指定版本信息时,可以使用 @Since 和 @Until 注释实现字段过滤。@Since 和 @Until 都接收一个 double 类型参数。
@Since 当设置的 Gson 对象版本大于或等于其所接收的参数时导出该字段
@Until 当设置的 Gson 对象版本小于其所接收的参数时导出该字段
示例
(1) POJO 对象
public class User { private String account; @Since(2) private String password; private String name; @Until(4) private int age; public User() {} public User(String account, String password, String name, int age) { this.account = account; this.password = password; this.name = name; this.age = age; } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } 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; } @Override public String toString() { return "User [account=" + account + ", password=" + password + ", name=" + name + ", age=" + age + "]"; } }
(2) 测试代码
@Test public void test() throws IOException { User user = new User("admin", "123456", "John", 30); String userStr = "{\"account\":\"normal\",\"password\":\"xyz123\",\"name\":\"Normal\",\"age\":25}"; Gson gson = new GsonBuilder() .setVersion(1) .create(); System.out.println(gson.toJson(user)); System.out.println(gson.fromJson(userStr, User.class)); gson = new GsonBuilder() .setVersion(2) .create(); System.out.println(gson.toJson(user)); System.out.println(gson.fromJson(userStr, User.class)); gson = new GsonBuilder() .setVersion(3) .create(); System.out.println(gson.toJson(user)); System.out.println(gson.fromJson(userStr, User.class)); gson = new GsonBuilder() .setVersion(4) .create(); System.out.println(gson.toJson(user)); System.out.println(gson.fromJson(userStr, User.class)); gson = new GsonBuilder() .setVersion(5) .create(); System.out.println(gson.toJson(user)); System.out.println(gson.fromJson(userStr, User.class)); }
运行结果:
相关文章推荐
- Google Gson 字段过滤:基于访问修饰符
- [转]Gson过滤字段
- Gson 过滤字段的几种方法
- 技巧——gson之过滤你不想要的字段
- Gson 过滤字段的几种方法
- 如何实现 Gson 序列化/反序列化过程中 过滤指定字段
- Gson 字段过滤
- 安卓注解使用,实体类指定须使用字段, Google Gson 字段过滤
- Gson 过滤字段的几种方法
- Google Gson 字段过滤:@Expose
- 基于SPI的数据报过滤原理与实现
- 基于SPI的数据报过滤原理与实现
- SQL SERVER7.0以上版本的字段类型说明
- SQL Server 2005使用基于行版本控制的隔离级别初探(3) -- SNAPSHOT
- 使用NBAR来基于应用层过滤流量 推荐
- 基于linux的嵌入IPv4协议栈的内容过滤防火墙系统(8)-附录
- 基于SPI的数据报过滤原理与实现
- 一个基于实例(向量)的关于开发跨版本ActionScript应用程序的讨论
- Java Collection框架在Collection的生命周期中需要基于不变字段的equals()和hashCode()方法
- SQL Server 2005使用基于行版本控制的隔离级别初探(2) -- READ_COMMITTED_SNAPSHOT