实际开发中,我们一定遇到过这样的问题:前端显示和后台存储数据单位不统一,而且各有各自的理由,统一不了,那就转换吧。
每次返回给前端时再转换一遍,返回给前端的json数据,在后端里定义的往往是一个对象,如何做到优雅的转换呢?只需两步
@JsonSerialize注解,主要用于数据转换,该注解作用在该属性的getter()方法上。
1. 写一个负责转换的类,里面写好规则
public class MySerializerUtils extends JsonSerializer<Integer> {@Overridepublic 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;case -1:statusStr = "已删";break;default:statusStr = "状态信息不符合";}jsonGenerator.writeString(statusStr);}}
2. 在实体类上需要装换的字段上加上注解
/*** 文字型状态值*/@JsonSerialize(using = MySerializerUtils.class)private int status;
