Fastjson过滤器用法

news2025/1/31 10:59:06

fastjson git地址:https://github.com/alibaba/fastjson/wiki

SimplePropertyPreFilter 用法

用于过滤某个属性

        SimplePropertyPreFilter filter = new SimplePropertyPreFilter();
        filter.getExcludes().add("gender");
        A a = new A(1,"zhangsan","gender");
        String json = JSON.toJSONString(a,filter);
        System.out.println(json);

过滤gender属性

 过滤name属性

PropertyFilter

也可以自己写 PropertyFilter

其中object 是要转成json的对象,name是属性名,value是属性值,可以根据自己的需求自定义

SimplePropertyPreFilter 实现了 PropertyPreFilter 

return true表示会返回回来;return false表示过滤掉了

当然new PropertyFilter()也可以改成lambda的形式,那么更简介

       PropertyFilter propertyFilter = new PropertyFilter() {
            @Override
            public boolean apply(Object object, String name, Object value) {
                if(name.equals("gender")){
                    return true;
                }
                return false;
            }
        };
        A a = new A(2, "lisi", "男");
        String json = JSON.toJSONString(a,propertyFilter);
        System.out.println(json);

 

 

类过滤器

Class_Level_SerializeFilter · alibaba/fastjson Wiki · GitHub

NameFilter

对属性名进行修改

把所有属性名都大写

        NameFilter nameFilter = new NameFilter() {
            @Override
            public String process(Object object, String name, Object value) {
                return name.toUpperCase();
            }
        };
        // 对A类添加过滤器
        SerializeConfig.getGlobalInstance().addFilter(A.class, nameFilter);
        A a = new A(3,"wangwu","女");
        String s = JSON.toJSONString(a);
        System.out.println(s);

 

ValueFilter

对value进行修改

        ValueFilter valueFilter = (object, name, value) -> name + "-" + value;
        SerializeConfig.getGlobalInstance().addFilter(A.class, valueFilter);
        A a = new A(4,"zhaoliu","女");
        String s = JSON.toJSONString(a);
        System.out.println(s);

 

NameFilter和ValueFilter都实现了SerializeFilter

SerializeFilter · alibaba/fastjson Wiki · GitHub

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/572388.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS样式的三种引入方式及优先级

说明:网页开发有三种技术,分别是html、css和js,分别对应页面的结构、表现和动作。css样式引入,是指把对页面的渲染作用到html上,有以下三种方式:行内式、内嵌式和外联式。 第一种:行内式&#…

噶了呀,现在的00后这么卷的吗?

现在的小年轻真的卷得过分了。前段时间我们公司来了个00年的,工作没两年,跳槽到我们公司起薪20K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天,原来这位小老弟家里…

KDZD自动脱扣型绝缘靴(手套)耐压试验装置支架

一、概述 KDZD自动脱扣型绝缘靴(手套)耐压试验装置支架是根据《DLT 976-2017 带电作业工具、装置和设备预防性试验规程》、《DLT 1476-2015电力安全工器具预防性试验规程》、《GBT 17622-2008带电作业用绝缘手套》、《CB21148 2020足部防护 安全鞋》等相…

VBA学习-循环语句

目录 一、基础知识学习 二、单元格格式 三、循环语句与判断语句 一、基础知识学习 1、对单元格赋值 Sub 赋值()对单元格进行赋值Range("A1").Value 100End Sub 2、多区域赋值 Sub 多个区域赋值() 多区域赋值Range("B1:C2").Value 200 End Sub 3、不…

2023年10月自考本科如何报名,报考流程是怎样的?

自考本科报名条件: 自考本科没有条件与要求,国家规定:凡中华人民共和国公民,不受性别、年龄、民族、种族和已受教育程度的限制,均可参加自学考试。但是,需要注意的是,办理本科毕业证书者&#x…

2023年,真的别裸辞....

作为IT行业的大热岗位——软件测试,只要你付出了,就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的,但放眼望去,哪个工作不是这样的呢?会有哪家公司愿意养一些闲人呢?…

【TellMeCode】使用VSCODE + ChatGPT辅助分析推测源码

【TellMeCode】使用VSCODE ChatGPT辅助分析推测源码 0x00 功能简介 根据代码上下文相关信息,如工作区文件夹名称,代码所在路径等一系列信息,提供给大模型更多元和尽可能多的信息,利用其自身优势去检索相关的文档和博客&#xf…

WSL 双系统端口映射,网络穿透最新教程

目录 1 进入wsl 1.1 进入root模式 1.2 随便安装个东西 2 打开win的PowerShell 2.1 查看虚拟机的ip地址 2.2 端口映射转发 2.3 验证是否成功 2.4 删除映射端口命令 1 进入wsl 这里使用的是ubuntuLiunx操作系统 打开wsl,搜索即可。 1.1 进入root模式 命令 …

SSM 如何使用 Redis 实现缓存?

SSM 如何使用 Redis 实现缓存? Redis 是一个高性能的非关系型数据库,它支持多种数据结构和多种操作,可以用于缓存、队列、计数器等场景。在 SSM(Spring Spring MVC MyBatis)开发中,Redis 可以用来实现数…

同一个Service类中非事务方法 调用 事务方法,事务失效 解决方法

同一个Service类中非事务方法 调用 事务方法,事务失效 解决方法 在平时开发中,同一个Service类中非事务方法调用事务方法,事务会失效,这里简单解释一下原因: spring采用动态代理机制来实现事务控制,而动态…

开发小程序流程

小程序的诞生,是继微信公众号之后的又一款火爆的 APP,并且小程序的市场需求也是非常大的。在小程序出现后,很多商家都想开发自己的小程序,但是因为不知道怎么开发,所以对此感到迷茫。下面就由爱尚网络科技来为大家介绍…

成功上岸奇安信!这份零基础入门网络安全的学习路线你一定要看,学长带你网络安全从入门到就业!

作为一个实用型技术博主,​由于我之前写了不少网络安全技术相关的文章,不少读者朋友知道我是从事网络安全相关的工作,于是经常有人在后台问我: 现在转行学网络安全是一个正确的选择吗?我刚入门网络安全,该…

如何在华为OD机试中获得满分?Java实现【取出尽量少的球】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述4. Java算法源码5. 测试6.解题思路1. 题目描述 某部门开展 Family Day …

震惊!吊打面试官,必备的 SpringCloud 微服务面试题(VIP典藏版)

目录 福利:文末有分享SpringBoot教程及源码哦《【imooc-java2021】体系课-Java工程师 》 Spring Cloud微服务面试题 1、Spring Cloud Netflix和Spring Cloud Alibaba包括哪些组件 2、Nacos是CP还是AP? 3、Nacos作为注册中心应该选择是CP还是AP? 4、…

ImageBind与Stable diffusion使用记录

参考代码 ImageBind:GitHub - facebookresearch/ImageBind: ImageBind One Embedding Space to Bind Them All ImageBind stable-diffusion-2-1-unclip:GitHub - Zeqiang-Lai/Anything2Image: Generate image from anything with ImageBind and Stabl…

条码控件Aspose Barcode,满足您条码需求的终极解决方案

Aspose.BarCode for .NET 是一个功能强大的API,可以从任意角度生成和识别多种图像类型的一维和二维条形码。开发人员可以轻松添加条形码生成和识别功能,以及在.NET应用程序中将生成的条形码导出为高质量的图像格式。 Aspose API 支持流行文件格式处理&a…

一文了解国内外电子后视镜(CMS)现行法规标准

摘要: 本文小编分享一篇整合了国内外对CMS的安装及功能性做出要求的相关标准与法规。感兴趣的朋友可以专门去搜索学习。 前言:随着GB15084-2022的即将正式实施,以摄像头屏幕组合取代传统光学后视镜的新一代电子后视镜CMS相关车型将被允许上路…

如何卸载Visio秘钥

文章目录 如何卸载Visio秘钥解决的问题我的环境版本查找OSPP.VBS文件使用命令行查看信息卸载Visio秘钥卸载其他版本秘钥查看word激活卸载Office秘钥总结 如何卸载Visio秘钥 解决的问题 本文教你如何卸载Visio或Office秘钥,如果安装了多个Visio无效秘钥&#xff0c…

【SpringBoot教程】开发提效工具Lombok引入 Mybatis-plus-generator代码自动生成工具

⛪ 专栏地址 系列教程更新中 🚀 文章介绍: 在开发过程中免不了与数据库的交互,其中模板类的编写如果手动编写会耗费大量时间,这里可引入MybatisPlus的Mybatis-plus-generator进行代码模板映射生成提高开发效率 🚀 源码获取: 项目中…

STM32 Cubemx Freertos 工程, 用GDB进行debug时候, 跳进HardFault_Handler的问题

现象: 正常运行没问题, 但是一旦用gdb来debug, 开场很快就进hardfault 分析: 进了hardfault时候观察调用栈 竟然是从定时器中断过来的 也就是定时器中断执行这条时候 再往前推, 是初始化systick时候 也就是说, 前一行把中断打开, 这一行打开定时器时钟, 马上进了一次中断…