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

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

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

阅读 9.4k
4 个回答

把id的类型改为String,处理的时候做一下Long和String的转换。

自定义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);
}

和这个问题类似 传送门

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

(1)如果acId类型可以改,就改为string。
如果acId类型实现不可以改的话。(2)方法一,重新定义一个javabean,只是acId类型改为string。
(3)方法二,把gson字符串再处理一下,把24768209282400257两边加上"就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题