最近发现一个巨好用的插件lossless-json

情景:

1. 如果你有一个对象的字符串类型,需要转换为对象

2. 如果正常转为对象是没有问题的,如果对象中数字类型,并且这个数字类型还很长,那就惨了,这样会失真

3. 大家都知道的方法是JSON.parse(),这样是不行的,老姐妹们,这个通用的会造成失真问题

4. 非常幸运,我找到一个插件,我们项目这种转换特别多,一大福星

具体用法:

下载: npm install lossless-json -S

引入:const LosslessJSON = require('lossless-json')

使用: 


let json = LosslessJSON.parse('{"foo":"bar"}'); // {foo: 'bar'}
let text = LosslessJSON.stringify(json);        // '{"foo":"bar"}'
'use strict';
const LosslessJSON = require('lossless-json');

let text = '{"normal":2.3,"long":123456789012345678901,"big":2.3e+500}';
let json = LosslessJSON.parse(text);

console.log(json.normal.isLosslessNumber); // true
console.log(json.normal.valueOf());        // number, 2.3
console.log(json.normal + 2);              // number, 4.3

// the following operations will throw an error
// as they would result in information loss
console.log(json.long + 1); // throws Error Cannot convert to number: number would be truncated
console.log(json.big + 1);  // throws Error Cannot convert to number: number would overflow

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐