json解析存在的精度丢失问题详解
来源:互联网 发布:淘宝手机版千牛工作台 编辑:程序博客网 时间:2024/06/10 13:09
今天遇到了一个大坑。这个问题调查了很久。一直以为是jar包或者哪里转错了。自己动手实验了一下。发现是json js 和java数值范围不同引起的。
{
“boolean”: true,
“starttimeseconds”:9223372036854122112,
“null”: null,
“number”: 11222222222222222223,
}
上边是一段json格式的字符串。经由json编辑器转成json对象的结果是starttimeseconds:9223372036854122000 ;
造成这个现象的主要原因是js中的number数值类型是双浮点精度类型即double。而java中的starttimeseconds的类型为long类型。也就是说java中得long能表示的范围比js中number大,也就意味着部分数值在js中存不下。所以在js中字符串转成js中的object的过程中数字精度发生额了丢失。
解决方法一:将starttimeseconds设置为string类型的。这个的话来回转换的 是字符串,不存在数值丢失。
方法二:protoful.js的long.js解决。
0 0
- json解析存在的精度丢失问题详解
- json解析精度问题
- iOS - Json解析数据精度丢失处理
- 关于iOS数据解析小数丢失精度的问题AFNetworking
- 关于iOS数据解析小数丢失精度的问题AFNetworking
- float丢失精度的问题
- double丢失精度的问题
- iOS - Json解析精度丢失处理(NSString, Double, Float)
- java的long类型转为json格式后,js中精度丢失问题
- FastJson与Gson转换成json串丢失精度问题
- net json数据转换出现精度丢失问题
- 关于小数负数丢失精度的问题
- MyBatis+Oracle时间精度丢失的问题
- Java中关于精度丢失的问题
- 浮点数精度丢失问题的解决
- Oracle TimeStamp类型精度丢失的问题
- 也谈浮点精度问题:找回丢失的精度
- iOS 关于网络数据解析小数位精度丢失问题的修正
- 【GDOI2017模拟】树的难题
- POJ1724
- 二叉树的层次遍历
- spring核心框架体系结构(各个jar包作用)
- How to add remove user (standard user/non-root) in Kali Linux?
- json解析存在的精度丢失问题详解
- JAVA多线程和并发基础面试问答
- fault,error和failure的区别与联系
- Device Tree Usage
- 使用IntelliJ IDEA 配置Maven(入门)
- 合并排序
- maven 亲测可用国内镜像 阿里云
- 浙江省第十四次ACM程序竞赛 Let's Chat(D题)
- Git免密码操作