Gson高级用法--->对json字符串进行过滤和检查
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/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了一种新技能!
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
3 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)