@JsonSerialize的使用


實際開發中,我們一定遇到過這樣的問題:前端顯示和后台存儲數據單位不統一,而且各有各自的理由,統一不了,那就轉換吧。

每次返回給前端時再轉換一遍,返回給前端的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;

這樣就轉換成功了。

@JsonSerialize注解,主要用於數據轉換,該注解作用在該屬性的getter()方法上。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM