当前位置:   article > 正文

fastjson 自定义注解序列化对象_fastjson自定义序列化

fastjson自定义序列化

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

现实思路如下:

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

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

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

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

第一步,自定义注解OaProperty

  1. import java.lang.annotation.*;
  2. @Target({ElementType.FIELD})
  3. @Retention(RetentionPolicy.RUNTIME)
  4. @Inherited
  5. public @interface OaProperty {
  6. /**oa字段名称*/
  7. String field() default "";
  8. }

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号