實際開發中,我們一定遇到過這樣的問題:前端顯示和后台存儲數據單位不統一,而且各有各自的理由,統一不了,那就轉換吧。
每次返回給前端時再轉換一遍,返回給前端的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 status;
這樣就轉換成功了。