Gson 的高级使用 GsonBuilder 高级使用

本文介绍了GsonBuilder的使用,包括默认排除策略,可排除特定修饰语字段;自定义排除策略,可通过注解和策略实现类排除字段;序列化空字段的方法;类型适配器,能为特定类型指定特殊适配方式;字段命名策略,可设置字段序列化和反序列化时的名称显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GsonBuilder

目前具有的方法

  • setFieldNamingPolicy 设置序列字段的命名策略(UPPER_CAMEL_CASE,UPPER_CAMEL_CASE_WITH_SPACES,LOWER_CASE_WITH_UNDERSCORES,LOWER_CASE_WITH_DASHES)
  • addDeserializationExclusionStrategy 设置反序列化时字段采用策略ExclusionStrategy,如反序列化时不要某字段,当然可以采用@Expore代替。
  • excludeFieldsWithoutExposeAnnotation 设置没有@Expore则不序列化和反序列化
  • addSerializationExclusionStrategy 设置序列化时字段采用策略,如序列化时不要某字段,当然可以采用@Expore代替。(上面2-4 这三个方法的设置的为策略,首先需要自定义注解,可用在之后的实体类中用来标识不反序列化/序列化 ;其次入参的该类需要实习ExclusionStrategy 接口中,两个方法,shouldSkipField()针对属性,shouldSkipClass()针对类)
  • registerTypeAdapter 为某特定对象设置固定的序列和反序列方式,实现JsonSerializer和JsonDeserializer接口(用来实现某些特定字段的转发,例如 null 转成 “ ” ,需要重写TypeAdapter 接口,write ()序列化;以及read() 反序列化 )
  • setFieldNamingStrategy 设置字段序列和反序列时名称显示,也可以通过@Serializer代替
  • setPrettyPrinting 设置gson转换后的字符串为一个比较好看的字符串
  • setDateFormat 设置默认Date解析时对应的format格式

参考:https://rongyao.blog.csdn.net/article/details/89316909
 

1. 默认排除策略

  • excludeFieldsWithModifiers(int… modifiers) 序列化或反序列化排除特定修饰语的字段
  • excludeFieldsWithoutExposeAnnotation()序列化或反序列化排除没有@Expoe的字段前面注解中已经讲述,这边不讲

默认排除static或transient描述的字段

    public class SomeObject {
        private static String field1;
        private transient String field2;
        private String field3;
        private String field4;
    }
    
    public static void main(String[] args) throws Exception {
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值