实际开发中,我们一定遇到过这样的问题:前端显示和后台存储数据单位不统一,而且各有各自的理由,统一不了,那就转换吧。
每次返回给前端时再转换一遍,返回给前端的json数据,在后端里定义的往往是一个对象,如何做到优雅的转换呢?只需两步
1. 写一个负责转换的类,里面写好规则
1 public class MySerializerUtils extends JsonSerializer<Integer> { 2 ????@Override 3 ????public void serialize(Integer status, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { 4 ????????String statusStr = ""; 5 ????????switch (status) { 6 ????????????case 0: 7 ????????????????statusStr = "暂存"; 8 ????????????????break; 9 ????????????case 1:10 ????????????????statusStr = "待上报";11 ????????????????break;12 ????????????case 2:13 ????????????????statusStr = "待审核";14 ????????????????break;15 ????????????case 3:16 ????????????????statusStr = "已审";17 ????????????????break;18 ????????????case 4:19 ????????????????statusStr = "退回";20 ????????????????break;21 ????????????case -1:22 ????????????????statusStr = "已删";23 ????????????????break;24 ????????????default:25 ????????????????statusStr = "状态信息不符合";26 ????????}27 ????????jsonGenerator.writeString(statusStr);28 ????}29 }
2. 在实体类上需要装换的字段上加上注解
/** * 文字型状态值 */@JsonSerialize(using = MySerializerUtils.class)private int statusStr;
这样就转换成功了。
@JsonSerialize注解,主要用户数据转换,该注解作用在属性的getter()方法上。
@JsonSerialize的使用
原文地址:https://www.cnblogs.com/luxianyu-s/p/9640588.html