搜尋

首頁  >  問答  >  主體

java - spring boot返回json数据时long类型数据失真

"id" : 24787807536939046,
"acId" : 24768209282400257,
"insertTime" : 1476957265000,
"lastUpdateTime" : 1476957265000,

这里返回的id,acid因为是long类型,如果数值太大在js里会失真,怎么在返回的时候让24787807536939046为string类型,通过注解

大家讲道理大家讲道理2807 天前831

全部回覆(4)我來回復

  • 巴扎黑

    巴扎黑2017-04-18 10:29:00

    把id的類型改為String,處理的時候就做Long和String的轉換。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:29:00

    和這個問題類似 傳送門。

    如果不合需求就要自己自訂一個Gson的序列化方法了。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:29:00

    自訂ObjectMapper,會自動把Long型別轉成string到前端

    public class CustomObjectMapper extends ObjectMapper {
    
        private static final long serialVersionUID = 3223645203459453114L;
    
        /**
         * 构造函数
         */
        public CustomObjectMapper() {
            super();
            SimpleModule simpleModule = new SimpleModule();
            simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
            simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
            registerModule(simpleModule);
    }

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:29:00

    (1)如果acId類型可以改,就改為string。
    如果acId類型實作不可以改的話。 (2)方法一,重新定義一個javabean,只是acId型別改為string。
    (3)方法二,把gson字串再處理一下,把24768209282400257兩邊加上"就可以了。

    回覆
    0
  • 取消回覆