在項目中 當字段實體類爲Long類型時 如果Long值超過前端js顯示的長度範圍時會導致前端回顯錯誤
此時我們想到的解決方案是將Long值返回給前端時轉爲String,
但是我們又不想變更字段的類型,當然我們也不想額外添加新的字段。
這個時候我們可以用@JsonSerialize,在Json序列化的時候把Long自動轉爲String,
但是這裏有個小坑,被轉換的字段必須是包裝類類型,否則會轉換失敗。
@JsonSerialize(using = ToStringSerializer.class)
private Long parentId; //轉化成功
@JsonSerialize(using = ToStringSerializer.class)
private long parentId; //轉化失敗
方案一:
Model直接定義成String類型,後端使用的時候轉成Long類型
方案二:
// 入參定義成Long,通過dataType制定類型
@ApiModelProperty(value = "團隊ID", dataType = "java.lang.String")
private Long teamId;
// swagger出參處理dataType之外,還需要定義JsonSerialize
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "項目id", dataType = "java.lang.String")
private Long projectId;