Long型別轉json時前端js丟失精度解決方案
一、問題背景
Java後端開發過程中,尤其是id欄位,因數值太大,通過json形式傳輸到前端後,在js解析時,會丟失精度。
如果對精度丟失沒有什麼概念,可以看一個知乎的帖子,來感受一下:https://www.zhihu.com/question/34564427?sort=created
二、解決思路
將id欄位序列化為json時,轉換為字串型別,前端傳輸到後端,反序列化時,再重新轉換為Long。
三、具體實現
在dto所在專案中,新建一個helper包(名字自定義,也可以放現有包裡)。PS:為什麼要建到dto專案中?因為,這個包最後可能會給其他組使用,這樣以來,所有的處理規則邏輯都是統一的,方便對接。
在包裡新增類LongJsonSerializer,程式碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
然後在包裡再新增類LongJsonDeserializer,程式碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
好了,接下來是使用這兩個類。
在需要處理的id欄位上,加上註解。比如如下程式碼:
1 2 3 4 5 6 |
|