搜索

首页  >  问答  >  正文

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

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

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

大家讲道理大家讲道理2806 天前829

全部回复(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
  • 取消回复