Gson高级用法--->对json字符串进行过滤和检查

参考文章:https://futurestud.io/blog/gson-builder-exclusion-strategies

相信你们基本都会使用Gson,所以就不介绍Gson如何使用了,直接介绍一些Gson高级的用法。

Gson完美依赖java8,如果Gson解析有啥问题的话,建议更新jdk到8.0再试一下。

上面是自己的一些经验,下面是对https://futurestud.io/blog/gson-builder-exclusion-strategies的总结和翻译。

这里讲下 Gson 的 ExclusionStrategy类的用法。

先看代码吧:

Gson实体类

public class UserDate {  
    private String _name;
    private String email;
    private boolean isDeveloper;
    private int age;
    private Date registerDate = new Date();
}

gson操作

GsonBuilder gsonBuilder = new GsonBuilder();  
gsonBuilder.setExclusionStrategies(new ExclusionStrategy() {  
    @Override
    public boolean shouldSkipField(FieldAttributes f) {
         return f.getName().contains("_");;
    }

    @Override
    public boolean shouldSkipClass(Class<?> incomingClass) {
        return incomingClass == Date.class || incomingClass == boolean.class;
    }
});
Gson gson = gsonBuilder.create();

UserDate user = new UserDate("Norman", "norman@futurestud.io", 26, true);  
String usersJson = gson.toJson(user);  

ExclusionStrategy中有两个方法,一个shouldSkipField,一个shouldSkipClass,前一个是过滤字段的,后一个是过滤类的,如上文,shouldSkipField中我们设置了f.getName()中必须包含“_”,如果不包含下划线 我们将自动过滤掉该字段。shouldSkipClass中设置了对应的类型就会过滤。
设置完了以后 我们得到的userJson为:

{
  "age": 26,
  "email": "norman@futurestud.io"
}

好了 ,你又get了一种新技能!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值