fastjson 自定义注解序列化对象

为了对接三方系统,需要通过HTTP传递字段,并处理字段映射和过滤。利用fastjson的SerializeFilter接口及自定义注解,可以简化这一过程。具体实现包括创建自定义注解OaProperty,实现PropertyPreFilter过滤非注解字段,以及NameFilter转换字段名称,以满足业务需求。
摘要由CSDN通过智能技术生成

需求:通过HTTP方式对接三方系统的时候,本方业务系统传输字段或字段内部与第三方字段名不一值,需要过滤、转化等操作,希望通过注解的方式 + fastjson过滤器来简化实现业务需求。

现实思路如下:

首先要了解下SerializeFilter这个接口是通过编程扩展的方式定制序列化。

fastjson支持6种序列化方式,用于不同业务场景的定制化需求,都是基于SerializeFilter接口的封装。

PropertyPreFilter 根据PropertyName判断字段是否序列化 
PropertyFilter 根据PropertyName和PropertyValue来判断是否序列化 
NameFilter 修改Key,如果需要修改Key,process返回值则可 
ValueFilter 修改Value 
BeforeFilter 序列化时在最前添加内容 
AfterFilter 序列化时在最后添加内容

案例:
业务表单需要传oa审批,oa表单字段少于业务表单并且字段名不一样,如果通过注解方式实现,过滤与转换字段名称。

第一步,自定义注解OaProperty

import java.lang.annotation.*;

@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface OaProperty {

    /**oa字段名称*/
    String field() default "";
}

第二,实现fastjson自定义过滤器,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值