前端精度丟失-@JsonSerialize

在項目中 當字段實體類爲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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章