@JsonSerialize正确使用

后端优雅转换JSON数据的方法
实际开发中,前端显示与后台存储数据单位常不统一,需后端转换。对于返回给前端的JSON数据,可通过两步操作实现优雅转换:一是写负责转换的类并定好规则,二是在实体类需转换字段上加注解,如@JsonSerialize注解。

实际开发中,我们一定遇到过这样的问题:前端显示和后台存储数据单位不统一,而且各有各自的理由,统一不了,那就只能由后端转换。

每次返回给前端时再转换一遍,返回给前端的json数据,在后端里定义的往往是一个对象,如何做到优雅的转换呢?只需两步操作:

1. 写一个负责转换的类,里面写好规则

 public class MySerializerUtils extends JsonSerializer<Integer> {
    @Override
    public void serialize(Integer status, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
        String statusStr = "";
         switch (status) {
             case 0:
                 statusStr = "新建状态";
                 break;
             case 1:
                statusStr = "就绪状态";
                 break;
             case 2:
                 statusStr = "运行状态";
                 break;
             case 3:
                 statusStr = "阻塞和唤醒线程";
                 break;
             case 4:
                statusStr = " 死亡状态";
               break;
             default:
                 statusStr = "状态信息不符合";
         }
         jsonGenerator.writeString(statusStr);
     }
 }
复制代码

2. 在实体类上需要装换的字段上加上注解

/**
 * 多线程生命周期状态值
 */
@JsonSerialize(using = MySerializerUtils.class)
private int status;
复制代码


注:@JsonSerialize注解,主要应用于数据转换,该注解作用在该属性的getter()方法上。


转载于:https://juejin.im/post/5c91ad28e51d4574ed4ee0a3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值