修復(fù)Long類(lèi)型太長(zhǎng),而Java序列化JSON丟失精度問(wèn)題的方法

Java序列化JSON時(shí)long型數(shù)值,會(huì)出現(xiàn)精度丟失的問(wèn)題。
原因:
java中得long能表示的范圍比js中number大,也就意味著部分?jǐn)?shù)值在js中存不下(變成不準(zhǔn)確的值).
解決辦法一:
使用ToStringSerializer的注解,讓系統(tǒng)序列化
時(shí),保留相關(guān)精度

    @JsonSerialize(using=ToStringSerializer.class)
    private Long createdBy;

上述方法需要在每個(gè)對(duì)象都配上該注解,此方法過(guò)于繁鎖。

解決辦法(二):
使用全局配置,將轉(zhuǎn)換時(shí)實(shí)現(xiàn)自動(dòng)ToStringSerializer序列化

Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();

    ObjectMapper objectMapper = new ObjectMapper();
    /**
     * 序列換成json時(shí),將所有的long變成string
     * 因?yàn)閖s中得數(shù)字類(lèi)型不能包含所有的java long值
     */
    SimpleModule simpleModule = new SimpleModule();
    simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
    simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
    objectMapper.registerModule(simpleModule);

    jackson2HttpMessageConverter.setObjectMapper(objectMapper);
    converters.add(jackson2HttpMessageConverter);
}

方法二比較完美,強(qiáng)烈推薦使用!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 早晨飄了一些毛毛雨,天灰著,午后又放晴了,她的心情也跟著愉快起來(lái)。 本來(lái)不想在晴天想起他,可是路上又遇到他騎著機(jī)車(chē)...
    徐翡閱讀 449評(píng)論 0 1
  • 23歲,對(duì)很多人來(lái)講,是一個(gè)朝氣蓬勃的年華;而對(duì)有些人來(lái)說(shuō),是人生的十字路口,愛(ài)情和理想,向左還是向右。 ...
    最Q的蛋仔閱讀 448評(píng)論 0 1
  • 前篇小文就像瓶子里的青蛙,前途光明,但如果不改變,出路不大的末尾曾經(jīng)提到特斯拉的情況并且承諾要有一篇新的內(nèi)容,今天...
    錦鄉(xiāng)悅文房閱讀 497評(píng)論 1 2
  • 十年前,絕殺殿 “孟家與吳家世代交好,如今孟家有難,我們絕殺殿不能坐視不管。況且孟公曾有恩于我吳風(fēng),這孟氏嫡子……...
    莫謎戀閱讀 541評(píng)論 0 0
  • 孤月外,空樓下。 一簫一劍一棋局。 青燈闌珊,把酒與誰(shuí)歡? 憶江湖,桀傲人生。 沉浮世間芳華,夢(mèng)...
    半步棋局閱讀 325評(píng)論 0 3

友情鏈接更多精彩內(nèi)容