fastjson反序列化过滤字段属性_全面总结Fastjson过滤字段、排除字段的5种方法:含示例

更新时间:2023-07-14 19:49:02 阅读: 评论:0

fastjson反序列化过滤字段属性_全⾯总结Fastjson过滤字段、清明节日期
排除字段的5种⽅法:含⽰例
1.通过注解指定不需要序列化的字段
在不需要序列化的字段,添加@JSONField(rialize = fal)注解可进⾏排除。
巴基斯坦签证办理>学习笔记模板public class DontSerializeAnnotation {    @JSONField(rialize = fal)    private Long id;    private String name;    public Long getId() {        return id;    }    执⾏结果:
{"name":"guest"}复制代码
2.声明为transient的变量不进⾏序列化
如果被序列化的字段使⽤transient修饰,则不会被序列化。
public class TransientObject {    private Long id;    private transient String name;    public Long getId() {        return id;    }    public void tId(Long id) {        执⾏结果:
{"id":2}复制代码
3.使⽤属性过滤器排除不需要序列化的字段
使⽤过滤器SimplePropertyPreFilter,可以⼀次性设置1到多个需要过滤掉的字段。
3.1 过滤对象中的某个字段
public class Ur {    private Long id;    private String name;    public Long getId() {        return id;    }    public void tId(Long id) {        this.id = id;    }    pub 执⾏结果:
谷歌商店打不开{"id":2}复制代码
用爱温暖你3.2 过滤嵌套类中的相同名字的字段
Group中的Ur,参照上⼀⼩节。
童话故事图片public class Group {    private Long id;    private String name;    private List urs = new ArrayList();    public Long getId() {        return id;    }    public void s 执⾏结果:
{"id":0,"urs":[{"id":2},{"id":3}]}复制代码
3.3 使⽤多个属性过滤器排除不需要序列化的字段
俞敏洪演讲如果只想过滤特定类中的字段,可以在创建过滤器的时候,指定对应类的class对象和字段。
邮寄英语下⾯⽰例,分别对Group和Ur创建⼀个过滤器,过滤掉不同的字段。
/** * 使⽤多个属性过滤器排除不需要序列化的字段. */@Testpublic void testExcludeMultiFilter() {    Group group = new Group();    group.tId(0L);    group.tName 执⾏结果:
{"name":"admin","urs":[{"id":2},{"id":3}]}复制代码
4.使⽤属性过滤器包含需要序列化的字段.
有些时候,我们仅仅需要序列化个别字段,或者当需要排除的字段⽐序列化的字段还要多的时候,这时可以使⽤包含⽽⾮排除的过滤器。
/** * 使⽤属性过滤器包含需要序列化的字段. */@Testpublic void testIncludeMultiFilter() {    Group group = new Group();    group.tId(0L);    group.tName("admin 执⾏结果:
{"id":0,"urs":[{"name":"guest"},{"name":"root"}]}复制代码
5.⾃定义属性过滤规则
在某些特殊的场景下,以上简单的排除或包含⽅式,并不能很好的满⾜实际的应⽤需求。
这时,可以考虑通过⾃定义属性过滤器,来实现过滤。这种实现⽅式⾮常灵活,可以根据实际的需求进⾏实现。
可以对类、字段名和字段值执⾏某种规则判断,来决定是否需要进⾏序列化。
具体⽅法,是实现PropertyFilter接⼝中的apply⽅法,返回true表⽰包含该字段,返回fal表⽰过滤掉。
/** * @author wenshao[] */public interface PropertyFilter extends SerializeFilter {    /**    * @param object the owner of the property. 字段所属/** * ⾃定义属性过滤规则,最灵活的⼀种实现字段和值过滤的⽅式。 */@Testpublic void testPropertyFilter() {    Group group = new Group();    group.tId(0L);    gr 执⾏结果:
{"id":0,"urs":[{},{"id":3}]}复制代码

本文发布于:2023-07-14 19:49:02,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1081543.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:需要   序列化   字段   属性   过滤器   过滤   排除
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图