巧用fastjson自定义序列化类实现字段的转换

简介: 项目中突然需要增加另一个字段的查找,而这个查找需要查另一张表的记录。但现在产品很多地方都要增加该字段,如何最快的实现该功能呢。办法如下:通过fastjson序列化时,增加该字段的序列化类,该序列化类通过CODE查找名称,并序列化到前端。

项目中突然需要增加另一个字段的查找,而这个查找需要查另一张表的记录。
但现在产品很多地方都要增加该字段,如何最快的实现该功能呢。
办法如下:
通过fastjson序列化时,增加该字段的序列化类,该序列化类通过CODE查找名称,并序列化到前端。

  • VO的功能修改
@Data
public class SysDictItemSelectVo implements Serializable{

    private static final long serialVersionUID = 1L;
    @JSONField(serializeUsing=ToSystemNameSerializer.class)
    private String systemName;

    public String getSystemName(){
        return this.getCode();
    }
    }
  • 序列化的类的属性

import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;

import java.io.IOException;
import java.lang.reflect.Type;

public    class ToSystemNameSerializer implements ObjectSerializer {

    public static final  ToSystemNameSerializer instance = new  ToSystemNameSerializer();

    @Override
    public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType,
                      int features) throws IOException {
        SerializeWriter out = serializer.out;

        if (object == null) {
            out.writeNull();
            return;
        }

        //原来的值code
        String strVal = object.toString();
        System.out.println(strVal);
        //通过code查找相关名称,测试先写死值 
        String name="std";
        out.writeString(name);

    }
}

经测试,序列化正常,其他地方只需要在VO增加该注解即可.

相关文章
|
2月前
|
Java
LocalDateTime的全局自定义序列化
LocalDateTime的全局自定义序列化
|
2月前
|
消息中间件 存储 负载均衡
Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
【2月更文挑战第21天】Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
351 4
|
17天前
|
JSON Java 数据格式
实现自定义序列化和反序列化控制的5种方式
实现自定义序列化和反序列化控制的5种方式
|
24天前
|
存储 分布式计算 Hadoop
MapReduce编程模型——自定义序列化类实现多指标统计
MapReduce编程模型——自定义序列化类实现多指标统计
17 0
|
2月前
|
消息中间件 分布式计算 Kafka
硬核!Apache Hudi中自定义序列化和数据写入逻辑
硬核!Apache Hudi中自定义序列化和数据写入逻辑
77 1
|
2月前
|
JSON Android开发 数据格式
android 使用GSON 序列化对象出现字段被优化问题解决方案
android 使用GSON 序列化对象出现字段被优化问题解决方案
|
2月前
|
XML 存储 BI
如何把一个 ABAP 类的实例,序列化成 XML 字符串试读版
如何把一个 ABAP 类的实例,序列化成 XML 字符串试读版
|
2月前
open-feign自定义反序列化decoder
open-feign自定义反序列化decoder
146 0
|
2月前
|
缓存 Java 数据库
为什么Bean类要序列化?
为什么Bean类要序列化?
26 0
|
14天前
|
存储 Java
JaveSE—IO流详解:对象输入输出流(序列化及反序列化)
JaveSE—IO流详解:对象输入输出流(序列化及反序列化)