Gson 的两个注解 @Expose @SerializedName

这两个注解可以在序列化和反序列化的时候使用。
简单的说 序列化 就是把实体类转json(多传给后台用)

               反序列化 就是将json转成需要的实体类(后台给前台的数据)

在反序列化的时候 前后端定义的字段名不一样 可以使用@SerializedName

在序列化的时候 前端给后台的数据不需要实体类中的一些字段 可使用 @Expose

1.反序列化的时候 如字段名大小写不一致 或者完全不一样 如DataModel 中使用@SerializedName("planno") 、 @SerializedName(value = "consid", alternate = {"cons_id"})

@SerializedName(value = "consid", alternate = {"cons_id"})这个是后台多个字段都对应前台的一个字段 如果后台的这两个字段都有值 用后面的一个字段 "cons_id"的值。

2. 序列化的时候 去掉一些字段 如DataModel 中使用 

@Expose(serialize = false) 序列化设置false 既可以去掉这个字段

@Expose() 默认true 保留字段

序列化方法注意:

private String listToJson(List<DataModel> dataList) {
    GsonBuilder builder = new GsonBuilder();
    builder.excludeFieldsWithoutExposeAnnotation();
    Gson gson = builder.create();
    String json = gson.toJson(dataList);
    return json;
}复制代码










转载于:https://juejin.im/post/5a3b70066fb9a0451a768d5e

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值