node.js是否有任何适当的方法可以解析大量的JSON? (long,bigint,int64) [英] node.js is there any proper way to parse JSON with large numbers? (long, bigint, int64)
本文介绍了node.js是否有任何适当的方法可以解析大量的JSON? (long,bigint,int64)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我解析这小段JSON
When I parse this little piece of JSON
{ "value" : 9223372036854775807 }
这就是我得到的
{ hello: 9223372036854776000 }
有什么办法可以正确解析它?
Is there any way to parse it properly?
推荐答案
不适用于内置JSON.parse.您需要手动对其进行解析,并将值视为字符串(如果要使用它们进行算术运算,则有 bignumber.js )您可以使用Douglas Crockford JSON.js 库作为解析器的基础.
Not with built-in JSON.parse. You'll need to parse it manually and treat values as string (if you want to do arithmetics with them there is bignumber.js) You can use Douglas Crockford JSON.js library as a base for your parser.
我为您创建了一个包 :)
I created a package for you :)
var JSONbig = require('json-bigint');
var json = '{ "value" : 9223372036854775807, "v2": 123 }';
console.log('Input:', json);
console.log('');
console.log('node.js bult-in JSON:')
var r = JSON.parse(json);
console.log('JSON.parse(input).value : ', r.value.toString());
console.log('JSON.stringify(JSON.parse(input)):', JSON.stringify(r));
console.log('\n\nbig number JSON:');
var r1 = JSONbig.parse(json);
console.log('JSON.parse(input).value : ', r1.value.toString());
console.log('JSON.stringify(JSON.parse(input)):', JSONbig.stringify(r1));
输出:
Input: { "value" : 9223372036854775807, "v2": 123 }
node.js bult-in JSON:
JSON.parse(input).value : 9223372036854776000
JSON.stringify(JSON.parse(input)): {"value":9223372036854776000,"v2":123}
big number JSON:
JSON.parse(input).value : 9223372036854775807
JSON.stringify(JSON.parse(input)): {"value":9223372036854775807,"v2":123}
这篇关于node.js是否有任何适当的方法可以解析大量的JSON? (long,bigint,int64)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文