解决Java中Long类型转换成Json时,在Js代码调用时精度丢失的问题
2018-03-20 23:37
2441 查看
在Java中18位或者更高位的Long类型转化成json,js调用时会存在精度丢失的问题。Spring MVC中默认的消息转换器时MappingJackson2HttpMessageConverter,使用的是Jackson系列化的,也就是ObjectMapper。所以我们也可以设置ObjectMapper将所有的Long类型转换成String类型,但是这个方法粒度大,会将所有的Long类型都转换成String类型,大部分的时候我们只需要将特定Bean中的Long类型转换成String即可,这个时候采用注解 @JsonSerialize(using = ToStringSerializer.class)即可将Long类型的数据转换成json时转换成String。
参考文章:https://www.cnblogs.com/reachlins/p/6558519.html
http://blog.csdn.net/xufei_0320/article/details/78243527
package com.xfl.boot.entity; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; /** * Created by XFL * time on 2017/8/16 23:50 * description: */ @JsonInclude(value = JsonInclude.Include.NON_EMPTY) public class User { private 4000 String name; private String age; private String desc; //将Long类型系列化成String避免精度丢失 @JsonSerialize(using = ToStringSerializer.class) private Long userId; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public Long getUserId() { return userId; } public void setUserId(Long userId) { this.userId = userId; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age='" + age + '\'' + ", desc='" + desc + '\'' + ", userId=" + userId + '}'; } }
参考文章:https://www.cnblogs.com/reachlins/p/6558519.html
http://blog.csdn.net/xufei_0320/article/details/78243527
相关文章推荐
- 关于java中long类型的数据转换json传到前台时丢失精度问题的解决办法
- Spring boot处理Long类型的Json数据,在Js代码调用时精度丢失的问题
- java的long类型转为json格式后,js中精度丢失问题
- 关于数据序列化(5),定制FastJSON序列化(解决Java大Long类型js的Number接收丢失数据的问题,不序列化某些属性)
- java中double类型数据加减操作精度丢失问题及解决方法
- 将java的集合转换为数据库集合类型 解决weblogic调用存储过程的时候,返回值乱码问题
- JSON(3):Java的Date类型转换为符合json语法的字符串遇到的问题及其解决办法
- Java中不同数值类型间转换与计算精度丢失问题
- Spring MVC自定义消息转换器(可解决Long类型数据传入前端精度丢失的问题)
- Java中不同数值类型间转换与计算精度丢失问题
- Spring boot处理Long类型的Json数据,前端调用精度丢失
- java与json互相转换(解决日期问题),js显示json数据时出现日期类型显示[object,object]现象解决!
- [ JAVA编程 ] double类型计算精度丢失问题及解决方法
- springboot+jersay环境下解决long类型到前台精度丢失的问题
- java中String、Long、Double等类型转换问题
- 类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们的问题的解决方法 续集
- 解决嵌套list类型的JSONObject/JSONArray转换成原来list问题。
- C++、C中有关double、float类型转换成int型,及取整,丢失精度问题。
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- Java中long类型直接赋值出现The literal xxxxxxxxxx of type int is out of range 问题的原因和解决方法