美文网首页
Gson的使用--使用注解

Gson的使用--使用注解

作者: 董成鹏 | 来源:发表于2018-07-09 00:52 被阅读0次

Gson为了简化序列化和反序列化的过程,提供了很多注解,这些注解大致分为三类,我们一一的介绍一下。

  1. 自定义字段的名字
@SerializedName("w");
int width

这个注解可以用来自定义序列化和反序列化过程中字段的名字。
以上面为例,当序列化的时候,会把Java bean中的字段width存储成w,在反序列化的时候会把Json的w这个key反序列化到Java bean的width字段上。

  1. 定义那些字段需要被序列化或者反序列化

注意,在Java中,所有用transient声明的字段,都不会被Gson序列化和反序列化

Gson提供了注解来分别的控制某一个字段是否需要被序列化或者反序列化。对序列化和反序列化分开控制。

使用@Expose注解,我们可以对序列化和反序列化单独控制,该注解有两个值,分别是deserialize和serialize,比如如下的例子

public class Account {

  //声明该字段不参与反序列化
  @Expose(deserialize = false)
  private String accountNumber;

  //只要有一个字段使用了Expose注解,所有需要参与序列化和反序列化的字段都要有这个注解
  //因为这个注解要么不生效,如果生效的话,就只会对有Expose注解的字段进行处理。
  @Expose
  private String iban;

  //声明该字段不参与序列化
  @Expose(serialize = false)
  private String owner;

  //声明该字段序列化和反序列化都不参与
  @Expose(serialize = false, deserialize = false)
  private String address;

  private String pin;
}

要使该注解生效,必须对Gson进行配置,如下

GsonBuilder builder = new GsonBuilder();
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();

如果我们不对Gson进行配置的话,该注解就不会生效,这样就会默认所有的字段都会被序列化和反序列化。

通过对Gson进行配置,只有带有Expose注解的字段才会被Gson进行序列化或者反序列化。

  1. 对Java Bean进行版本控制,这个使用的很少,比如
public class SoccerPlayer {

  private String name;

  //表明这个属性是1.2版本之后才加入的
  @Since(1.2)
  private int shirtNumber;

  //表明这个属性在0.9版本上已经被移除了
  @Until(0.9)
  private String country;

  private String teamName;

  // Methods removed for brevity
}

和Expose一样,要使用这两个注解,也需要对Gson进行配置,如下

GsonBuilder builder = new GsonBuilder();
//在这里,我们定义版本是1.0,由于shirtNumber在1.2才加入,所以不生效
//country在0.9被移除,所以也不生效
builder.setVersion(1.0);
Gson gson = builder.create();

相关文章

  • GSON

    需要掌握的知识点 GSON的基本用法 属性重命名 @SerializedName 注解的使用 GSON使用泛型 利...

  • Gson的使用--使用注解

    Gson为了简化序列化和反序列化的过程,提供了很多注解,这些注解大致分为三类,我们一一的介绍一下。 自定义字段的名...

  • 注解及Gson的使用

    1.注解插件ButterKnife Zelezny的使用与安装 1.1.下载安装 Settings——>Plugi...

  • Andriod中Gson使用

    Gson使用 参考你真的会用Gson吗?Gson使用指南 在Android中使用Gson,先在Compile中加入...

  • Gson使用指南 2017-08-15

    Gson使用指南系列其它文章你真的会用Gson吗?Gson使用指南(一)你真的会用Gson吗?Gson使用指南(二...

  • Gson使用之@Expose注解

    @Expose Gson 中的@Expose注解 用于声明当前的 参数 需要暴露给 JSON 进行序列化或反序列化...

  • Gson的使用进阶之注解

    Gson的五大注解 @SerializedName、@Expose、@Since、@Until、@JsonAdap...

  • gson的使用细节

    关于json,gson是最常用到的一个库。平常使用时我通常使用Gson gson = new Gson();的方式...

  • Gson用户使用文档

    1.概述2.Gson的目标3.Gson的性能和扩展性4.Gson的使用者5.如何使用Gson 通过Maven来使用...

  • Gson的使用--反序列化

    翻译自JavaCreed首先看一个Json字符串 如果我们不使用Gson注解@SerializeName,那怎么来...

网友评论

      本文标题:Gson的使用--使用注解

      本文链接:https://www.haomeiwen.com/subject/sfwauftx.html