最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決前后端交互數(shù)據(jù)出現(xiàn)精度丟失的多種方式

 更新時(shí)間:2022年04月27日 17:27:34   作者:Hi梅  
這篇文章主要為大家介紹了解決前后端交互數(shù)據(jù)出現(xiàn)精度丟失的多種方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

問題:

發(fā)送Ajax請(qǐng)求,請(qǐng)求后端接口創(chuàng)建訂單并且返回訂單號(hào)出現(xiàn)訂單號(hào)精度丟失的情況

情景復(fù)現(xiàn):

前端發(fā)送請(qǐng)求到后端接口

我們前端打印訂單號(hào)到控制臺(tái)查看,前端返回訂單號(hào):1510826214531666000

查看數(shù)據(jù)庫訂單號(hào):1510826214531665920

比較2個(gè)單號(hào)區(qū)別

可以明顯看出后面幾位數(shù)據(jù)丟失,這樣就存在一個(gè)問題,我前端通過該訂單號(hào)無法獲取到正確的訂單

數(shù)據(jù),就會(huì)出現(xiàn)訂單已經(jīng)保存成功但是查詢不到的問題

解決方式

問題出在前端的Long長度,沒有后端Long的長度長這樣,前端獲取到數(shù)據(jù)后會(huì)對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,發(fā)現(xiàn)長度大于前端的Long最大長度就會(huì)精度丟失,那么我們應(yīng)該直接讓他返回字符串的數(shù)據(jù)不讓他轉(zhuǎn)換!
那么就會(huì)有2種解決方案

1.前端解決

請(qǐng)求的時(shí)候添加以下代碼,這樣前端接受就不會(huì)進(jìn)行轉(zhuǎn)化

{
	transformResponse: [
			function (data){
				return data;
			}
	]
}

發(fā)送請(qǐng)求我們?cè)诳聪?打印返回的訂單查看

數(shù)據(jù)庫數(shù)據(jù)

可以看出沒有丟失精度

前端解決丟失完成

2.后端解決

我們更改后端實(shí)體類的值

通過@JsonFormat值把Long類型的值轉(zhuǎn)成String類型的值

 @JsonFormat(shape =JsonFormat.Shape.STRING )
 private Long orderId;// id

然后重啟后端代碼測(cè)試下,該接口由于后端返回的類型就是Long所以沒辦法使用這個(gè)方案

注意:

如果后端返回的是對(duì)象那么Id是Long類型的話可以通過@JsonFormat把對(duì)象的id從Long類型的轉(zhuǎn)換成String類型那么前端也不會(huì)出現(xiàn)精度丟失,如果單獨(dú)返回的數(shù)據(jù)類型一開始就是Long那么只能通過前端的方法解決
 

例如:

后端返回類型是Long那么只能改前端,不然就要更改后端返回為String,為了不影響后端業(yè)務(wù)盡可能使用前端的方式解決

以上就是解決前后端交互數(shù)據(jù)出現(xiàn)精度丟失的多種方式的詳細(xì)內(nèi)容,更多關(guān)于前后端數(shù)據(jù)交互精度丟失的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

连云港市| 蕲春县| 庆城县| 平武县| 渭源县| 南澳县| 东丰县| 叶城县| 宣恩县| 称多县| 扬州市| 丰原市| 新龙县| 莱州市| 广西| 温州市| 新津县| 汉阴县| 将乐县| 罗定市| 嘉峪关市| 建宁县| 宁阳县| 渝中区| 读书| 西乌珠穆沁旗| 噶尔县| 竹北市| 和田市| 白玉县| 沂源县| 泊头市| 榆林市| 潢川县| 长宁区| 锡林浩特市| 鹤峰县| 方正县| 思茅市| 海门市| 铜川市|