Jee*_*eet 11 json numbers converter
我有一个简单的JSON,其中数字未被正确解析.
[
{
"orderNumber": 1,
"customerId": 228930314431312345,
"shoppingCartId": 22893031443137109,
"firstName": "jjj"
}
]
Run Code Online (Sandbox Code Playgroud)
我试过@ http://www.utilities-online.info/xmltojson/,结果是
<?xml version="1.0" encoding="UTF-8" ?>
<orderNumber>1</orderNumber>
<customerId>228930314431312350</customerId>
<shoppingCartId>22893031443137108</shoppingCartId>
<firstName>jjj</firstName>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的...... XML与JSON不同.我是JSON的新手.我错过了什么吗?
这是一个Javascript精度问题.
据Mozilla开发者网络称:
ECMA-262仅需要高达21位有效数字的精度.其他实现可能不支持高于标准要求的精度.
资料来源:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toPrecision
我将您的数组粘贴到Google Chrome的Javascript控制台中并获得了以下信息:
因此,看起来Javascript在将值转换为XML之前将其四舍五入.由于您的转换是通过浏览器http://www.utilities-online.info/xmltojson/上的Javascript完成的,因此更改数字的原因很有意义.
(注意:我使用Windows 7专业版在Google Chrome版本26.0.1410.43米上进行了测试)
编辑:
你有什么理由不能将这些值作为字符串传递给Javascript吗?
试试这个:
[
{
"orderNumber": "1",
"customerId": "228930314431312345",
"shoppingCartId": "22893031443137109",
"firstName": "jjj"
}
]
Run Code Online (Sandbox Code Playgroud)
我能够做到这一点并成功保存值.但是,您将无法在Javascript中对它们运行数学计算而不会丢失一些精度,当然,除非您正在执行乘以0之类的操作.
这也使用您的参考http://www.utilities-online.info/xmltojson/正确转换为XML .