@gladstongarcia/json-bignumber v1.0.1
JSONBigNumber
JSONBigNumber.parse/stringify handling all JSON numbers using BigNumber. Based on Douglas Crockford JSON.js package and bignumber.js library.
Usage
All JSON numbers will be passed to BigNumber in the JavaScript object returned from JSONBigNumber.parse()
example
let input = '{"big":1234567890.123456789,"small":789.012}';
let obj1 = JSON.parse(input);
console.log("JSON", obj1.big.toString()); //'JSON', '1234567890.1234567'
//The number has lost the last 2 digits
let out1 = JSON.stringify(obj1);
console.log("JSON", out1); //'JSON', '{"big":1234567890.1234567,"small":789.012}'
let obj2 = JSONBigNumber.parse(input);
console.log("JSONBigNumber", obj2.big.toString()); //'JSONBigNumber', '1234567890.123456789'
//No loss of precision
let out2 = JSONBigNumber.stringify(obj2);
console.log("JSONBigNumber", out2); //'JSONBigNumber', '{"big":1234567890.123456789,"small":789.012}'
JSONBigNumber.js: This file creates a JSONBigNumber property in the global object, setting its value to an object containing a stringify method and a parse method. The parse method uses recursive descent to do the parsing.
Note
For bignumber.js >= v6.0.0 use JSONBigNumber >= v1.0.0 For bignumber.js < v6.0.0 use JSONBigNumber < v1.0.0
JSON is a light-weight, language independent, data interchange format. See http://www.JSON.org/
JSON became a built-in feature of JavaScript when the ECMAScript Programming Language Standard - Fifth Edition was adopted by the ECMA General Assembly in December 2009. Unfortunately the built-in JSON handler makes use of JavaScript Number for handling Numbers in JSON causing the loss of precision for numbers with approximately 15 significant figures.
6 years ago